|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
》这一题的重点就是首先把码元表示出来,这里我是使用了randi([0,1],1,N);
4 g# D# d6 Q5 e$ A: `; ? k+ `4 E' |# ?
随机生成了0或者1,生产了N个随机数。
( Z1 B# q8 O$ S& C
% P- x& x6 Q x8 r* W$ J1 v* x3 m》接着表示基本码元,这里的是单极性不归零NRZ码元,所以gt1= ones(1,N_sample);%不归零。之后就应用基本码元函数来生成所需要的最后的序列。
" p% `) J* L9 c% n9 |) g6 [
# P0 g0 `& E8 K% _+ h》再根据所生成的每一个码元把基本码元添加到里面。
1 X# f% Q+ l, l8 O- ?& M( @
5 x( H% P! r! e6 U/ M( r0 K, R2 ?yt1((i-1)*N_sample+1:i*N_sample) = gt1;
2 b$ ~- F6 _% t% `1 w
8 U9 i. N, S1 |8 j3 L U0 s- q》最后利用快速傅里叶变换fft得到频谱,再用conj求出共轭这就相当于求了频谱模的平方。接着除以时间N就可以得到功率谱。
8 ?8 v. m( _$ [( L7 k+ J2 ^; y# o1 V
( i4 y# d8 x" E: Y* C* y7 Z》在生成的图我们会发现有许多的冲激,那么你就可以看看这些冲击都是在哪一些位置,试着去掉着一些冲激。
# g, b3 k) I3 ]- @
2 j# f8 X8 z0 x7 ]for i = 1:80 : u! h0 u8 V: i& b, h
: [ G+ H7 q* H+ O+ {# I" ~
Pf1(i*100 + 1) = Pf1(i*10);
$ r" ~! ?3 H- P: B1 n/ Y
1 G6 w# K% G, a& K% f$ hend
/ B5 S# u0 D0 ?) c$ b" v+ K; b: [3 I# e% B; m+ c
要生成别的码元表示只要稍微修改即可。9 r. h2 D! t$ @, M/ K* N6 i0 d, k
0 X& I% K7 n& R; C最后参考代码是:(图的显示的时候要多运行几次,最后效果才出来)
3 |* O# k5 T. x; o% F
- s/ ~% G' S) K: P, o9 a% communication principle
: i+ c& }0 L5 n' W: f+ L) y4 p# ?% Lab 6 problem 1
! U% s# D* d, o( L# J" Vfunction single_polar_code9 u( [2 A( r) g) `# s2 ^$ ^
clear all;
/ Z3 v6 }% w9 k# T1 Mformat long;* _: ^' e7 }3 t2 x2 F$ _# @
Ts = 1; %码元周期% G, Y9 E, m& p5 N8 s/ {
N_sample = 128; %每个码元抽样点数2 ~. V5 l+ o1 {& [2 j# w+ q, R
dt = Ts/N_sample; %抽样的时间间隔
" q. M8 n: {, Q# O4 ]N = 100; %码元数
5 j$ \- b7 b1 ]- s/ `t = 0: dt: (N*N_sample-1)*dt;) }: C; i9 _: W
% 基本码元 g(t) = 1' \# y: ]* h9 J5 Y" I8 h$ }
gt1 = ones(1,N_sample); %不归零, @% M3 M7 R+ f) z% W
gt2 = [ones(1,N_sample/2),zeros(1,N_sample/2)]; %归零,占空比为0.54 d' ~' R8 @4 {
gt3 = sinc(2*t(1:N_sample)/Ts); %sin(2*pi*t(1:N_sample)/Ts)/(2*pi*(1:N_sample)/Ts): j2 Y; M v4 B' E
gt0 = zeros(1,N_sample);0 a% }7 m; ^) d) V3 ]! u8 a
( ^ ]9 Z* ~8 x) t8 ]5 x%生成随机码元1 X- }! q6 Q, P7 ~/ o
random_code = randi([0,1],1,N);( W1 W; j) `# a, F) z" s
0 T, ?3 F( U5 W" ?, D8 G8 w%单极性波形的最后结果
3 h/ K% f% t0 l( y; J5 T9 W; xyt1 = zeros(1,N*N_sample-1); 8 ~" e% k/ V f M7 \3 \
yt2 = zeros(1,N*N_sample-1);
a2 l' `" a a; B" b2 n& O% Qyt3 = zeros(1,N*N_sample-1);
6 E1 b6 c! O: J* ~1 e2 {( v" Efor i = 1:N
$ n" ]% _6 p) x5 K- x/ b1 w0 ? if random_code(i) == 1 %得到波形图. ~9 Q3 K3 F# Y* X/ X
yt1((i-1)*N_sample+1:i*N_sample) = gt1; %单极性不归零NRZ波形
1 E2 z4 z* Q$ J+ U' a, a0 p r yt2((i-1)*N_sample+1:i*N_sample) = gt2; %单极性归零RZ波形$ H; ?' F+ r( \7 j
yt3((i-1)*N_sample+1:i*N_sample) = gt3; %双极性sinc波形
9 \* V! ^7 q* \+ T1 x& ^1 |8 H else
, d" S: U2 ?$ C5 y yt1((i-1)*N_sample+1:i*N_sample) = gt0; %没有这一行会经常报错
) _8 n' Y8 Y9 D: r) o& O9 K; ?: J yt2((i-1)*N_sample+1:i*N_sample) = gt0;9 E' k) e% P, B6 _4 _) j
yt3((i-1)*N_sample+1:i*N_sample) = (-1)*gt3;
/ m$ q' s: s6 P5 s8 b end
! g) p; D- ]5 ^: |: L, Rend: \* o {$ K8 Z8 s6 W* Q
# ^! E( O1 w& F1 o' f$ Y) X
%*********************************************************************) C) g# _7 S1 }5 I; W
%求单极性不归零时域波形于波功率谱密度2 G/ h1 F* v/ r" u
figure(1)
2 D( D# m4 Y$ {. a& R: {subplot(2,1,1);7 a: O2 E0 O7 H
plot(t,yt1,'r');" q ]- t; h8 Y3 G' R! D2 e
title('单极性不归零NRZ波形');
3 v7 B: `& |. u, G; Wxlabel('时间t/s');
) f, H( b+ x V9 L( L& Q, @1 @axis([0,20,-0.5,1.5]); %画单极性不归零NRZ波形信号幅度频谱
1 n/ D4 {# W5 i2 f. [- O# tgrid;
" M5 O& |' E: X8 |7 j5 \) h
' P1 O! M) J7 b: ZFt1 = fft(yt1);
1 V+ `9 [: X. U# l. b( EFt1 = fftshift(Ft1);
- R& {" N4 [0 @4 r& `, T6 c N# V6 @5 xp = (Ft1.*conj(Ft1))/N; %计算功率谱密度
' M" I4 f% c; m" r K( E% c `ff1 = (-length(Ft1)/2:length(Ft1)/2-1)/10;
! F0 o! w0 N! @* B" c% |$ ]$ lPf1 = 10*log10(p);. {2 N# @6 ?5 A2 q7 G: b
for i = 1:80# K+ {* m: l/ a+ X2 J
Pf1(i*100 + 1) = Pf1(i*10);6 e% p% R( D/ i9 R& F7 S
end
0 b4 [' P( u3 f1 i7 D# Rsubplot(2,1,2);) s$ \ }1 n! I8 i; |- S# g* A
plot(ff1,Pf1);- F2 S$ v+ b, N8 _2 Y
axis([-50,50,-50,50]); %画出单极性不归零NRZ波形功率谱密度
" O9 u0 b: q7 q' C6 s* Ngrid;
, c# {& s, ^* Y8 D" x# C%*********************************************************************5 }6 t/ [' C+ P+ l M' |( J- J
% K7 W" _# T3 V%*********************************************************************
) h- g% |+ A+ B3 ^9 l' ^%求单极性归零时域波形与波功率谱密度
8 i' v6 V% R! `( l+ Bfigure(2)
; A9 b& Z! N% F8 j8 ?0 f: Dsubplot(2,1,1);
" z; f6 J9 y) j, P: j5 dplot(t,yt2,'r');
' M6 Q: n& _; Q) @title('单极性归零RZ波形');' d3 X( a4 K% e, n. A0 ~) L- C
xlabel('时间t/s');, J" x' |" Q; \0 \8 z
axis([0,20,-0.5,1.5]); %画出单极性归零RZ波形功率谱密度/ R" \6 W6 p: k3 S0 q& W
grid;
; S5 p% B' T# ~$ C' ?+ S+ y; B4 A9 g" Q. G+ S
Ft2 = fft(yt2);& U; a; R5 O7 @. y+ l3 ~5 Z
Ft2 = fftshift(Ft2);( P+ H, X2 [% B4 A
p2 = (Ft2.*conj(Ft2))/N; %计算功率谱密度
! m2 F7 n" S; H& w, H0 Off2 = (-length(Ft2)/2:length(Ft2)/2-1)/10;) ~) Q/ c, ?" [0 g: x7 \( N
Pf2 = 10*log10(p2);" \3 a1 a% n- D0 u: I2 I
for i = 1:80$ |# c+ Z# F4 n
Pf2(i*100 + 1) = Pf1(i*10);' y: _6 f4 J5 B' f$ [! M0 t
end) n; m# {2 l) @( X$ @7 { k
subplot(2,1,2);! {; r: ? c( @( Y7 p5 N1 z, @6 n
plot(ff2,Pf2);
2 x' d5 i" V3 Taxis([-50,50,-50,50]); %画出单极性不归零NRZ波形功率谱密度
& p; @) C) k" k% q* W3 qgrid;. m# F0 O2 n) g
%*********************************************************************
! B4 s/ d+ j9 z% F- ?
& _; Y, e* K) ?%*********************************************************************; w3 k8 v7 ?+ N/ D
%求双极性sinc波形时域波形与功率谱密度2 T p+ {: V) F$ [- B: i6 P$ u& l
figure(3)
4 V7 L9 S$ z. U; u7 T6 Tsubplot(2,1,1);9 w* C* d0 S1 d( S) ~/ W% x+ ^! s1 m
plot(t,yt3,'r');
5 m$ |/ A5 S! A btitle('双极性sinc波形');0 b4 _ @- M4 \9 j3 G D
xlabel('时间t/s');7 F6 G* U7 T) f) r
axis([0,20,-1.5,1.5]); %画出双极性sinc波形功率谱密度+ f) k) H2 {& d2 c+ J/ X9 X, `3 P8 w
grid;
6 m( B2 s4 B# h9 I- u) ^4 I- V0 P3 N5 ]( F# }" x: ~+ D
Ft3 = fft(yt3);
& x9 {6 l+ e. c- u7 qFt3 = fftshift(Ft3);
( _6 A8 g# F0 K4 k$ _8 mp3 = (Ft3.*conj(Ft3))/20; %计算功率谱密度 [6 [; g7 ?2 c! n4 x, p; |
ff3 = (-length(Ft3)/2:length(Ft3)/2-1)/10; ~1 ~, l5 g5 A* j( }" z# h
Pf3 = 10*log10(p3);
; G% F3 K Q& p- n3 Bsubplot(2,1,2);" j3 o) r# \ k2 W+ Y: ?7 m
plot(ff3,Pf3(1:length(Ft3)));
) C5 Y& [' L. |' I) a( l- O0 J+ `axis([-50,50,-50,60]); %画出单极性不归零NRZ波形功率谱密度
" Z9 g' T& ], [0 F5 [grid;
# A8 ?% n/ e! t, D1 T5 q( G' ?%************************** |
|