|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
》这一题的重点就是首先把码元表示出来,这里我是使用了randi([0,1],1,N);8 S9 h0 i& t: U
6 K6 O; Z; t0 C: Z随机生成了0或者1,生产了N个随机数。
+ A+ F5 e; d2 Z7 y3 t5 O; {) i5 k4 c+ E; r5 F' R0 g5 A- v
》接着表示基本码元,这里的是单极性不归零NRZ码元,所以gt1= ones(1,N_sample);%不归零。之后就应用基本码元函数来生成所需要的最后的序列。( g& b( t$ m5 u% Y
" |3 F. ~8 b; C) S2 x' j8 n' H- I8 O
》再根据所生成的每一个码元把基本码元添加到里面。
& A* ^3 Q* B a( `% V, [2 L$ P6 u0 q ?2 G4 y; M
yt1((i-1)*N_sample+1:i*N_sample) = gt1; - {' q5 q, ~% W3 O3 A) t+ U
$ F: @3 L9 X V6 r: k1 b2 _》最后利用快速傅里叶变换fft得到频谱,再用conj求出共轭这就相当于求了频谱模的平方。接着除以时间N就可以得到功率谱。
2 y0 U5 H5 D3 h% {& ~7 ]2 n
3 L: ]; O4 E! M, F I》在生成的图我们会发现有许多的冲激,那么你就可以看看这些冲击都是在哪一些位置,试着去掉着一些冲激。. i+ {* {' a0 l- ]4 B* g' i5 ]
- ^3 X6 M% J. z- R
for i = 1:80 & a: x: J9 d# v2 F& x
1 W: v1 T: Q& b. s; ` S9 f5 h# [
Pf1(i*100 + 1) = Pf1(i*10);
) K6 Z: x8 x1 `9 Q; {9 z% L9 y g5 Z3 d0 O
end
" ^. X7 w- b0 L' ]
! L% B% e& y, d1 X% Y要生成别的码元表示只要稍微修改即可。
) w( q, J4 z% Z8 Y' x K4 c y9 [2 W0 r: ]
最后参考代码是:(图的显示的时候要多运行几次,最后效果才出来)
* C) }& X$ a2 C0 h8 D/ P
+ Q9 E& ^- d$ T, P1 I( ]9 k! K% communication principle
2 A# ?7 ^, l5 d6 W. ~4 p0 f: O3 o! K% Lab 6 problem 15 b1 b9 J7 n, m$ y
function single_polar_code& [# A* x; b5 S5 h, y4 [( b. ^
clear all;
$ e' U3 i. F8 x8 ]; uformat long;) h( I/ \- d, g1 R! L: ]
Ts = 1; %码元周期+ R. f8 @) Y6 w+ b# v
N_sample = 128; %每个码元抽样点数: u; f" U c5 L; R5 w9 p
dt = Ts/N_sample; %抽样的时间间隔
1 d# l# R9 Y8 ~9 VN = 100; %码元数
~: i+ g' v2 P2 @' R/ `% @' u1 Zt = 0: dt: (N*N_sample-1)*dt;
6 q$ c$ v1 n& B! }$ c% 基本码元 g(t) = 1" W0 J. V+ e7 w9 N6 P4 p
gt1 = ones(1,N_sample); %不归零
) H7 [/ N/ y. wgt2 = [ones(1,N_sample/2),zeros(1,N_sample/2)]; %归零,占空比为0.5% ~* z f. ~5 Z W3 [
gt3 = sinc(2*t(1:N_sample)/Ts); %sin(2*pi*t(1:N_sample)/Ts)/(2*pi*(1:N_sample)/Ts)5 K0 ]* D7 R, e C/ y
gt0 = zeros(1,N_sample);, y7 s7 o0 Q* W J6 d* x+ n7 G( z
" e0 j! z# ]0 B5 y, O
%生成随机码元
8 {0 t A1 _9 Q" W0 _; {5 qrandom_code = randi([0,1],1,N);
9 f5 t5 O6 R: J; P2 b* n) C* L
* b2 ~! _' y! ]7 a9 x%单极性波形的最后结果
7 E+ Q" R5 r5 v. Z- l' ]1 `1 Jyt1 = zeros(1,N*N_sample-1);
+ F- Y, v( u$ p0 Myt2 = zeros(1,N*N_sample-1);5 k3 v; j: ^- b0 y0 z7 Q
yt3 = zeros(1,N*N_sample-1);
+ H8 Q( g& g, r, }, `5 i9 Tfor i = 1:N8 Y* c5 T* A9 \7 M. F
if random_code(i) == 1 %得到波形图
, a7 r: x9 `; Z* D& n yt1((i-1)*N_sample+1:i*N_sample) = gt1; %单极性不归零NRZ波形
1 S e% H7 d- o3 b1 y yt2((i-1)*N_sample+1:i*N_sample) = gt2; %单极性归零RZ波形
0 z+ e+ f8 F2 }! _* ^0 l$ R, z yt3((i-1)*N_sample+1:i*N_sample) = gt3; %双极性sinc波形8 Y5 m" R4 U& J6 G. k
else* U6 U. i; L; T9 q
yt1((i-1)*N_sample+1:i*N_sample) = gt0; %没有这一行会经常报错
1 j3 p. T; w, x% c: d% n* y yt2((i-1)*N_sample+1:i*N_sample) = gt0;
S" ^$ `7 E1 t0 M/ M& y( a yt3((i-1)*N_sample+1:i*N_sample) = (-1)*gt3;
$ W8 S# n. Q0 G3 u2 J end5 O7 i! P d2 L$ H$ M
end
( d% P0 f, q; L9 D% T/ f
# ]6 x. G) Z) k( c. ~%*********************************************************************
8 q% X: R( X0 p$ s ^%求单极性不归零时域波形于波功率谱密度
. }( t8 a# r- w+ N6 {6 Jfigure(1)
; X/ g g1 @# q- M& jsubplot(2,1,1);9 ]9 S6 `: j/ [
plot(t,yt1,'r');
& ~: @ f% X1 e5 i' \7 Z0 Q' }title('单极性不归零NRZ波形');
! l% L$ [* a$ M4 J) Qxlabel('时间t/s');
5 Z! j. C/ l6 S- y) Iaxis([0,20,-0.5,1.5]); %画单极性不归零NRZ波形信号幅度频谱
, \' P' o* U7 z, Z, {grid;3 W( n) B7 t# ^( W+ q8 `
; B, f( U5 c# t3 `. l& K
Ft1 = fft(yt1);" g, F/ R+ _1 K" X) Z$ q8 {0 d+ `
Ft1 = fftshift(Ft1);
# p9 p3 ~. D' @7 a0 Jp = (Ft1.*conj(Ft1))/N; %计算功率谱密度 ' t6 g2 U' l5 E/ h2 v, l+ B
ff1 = (-length(Ft1)/2:length(Ft1)/2-1)/10; {2 V' F2 y2 w _2 _' L& l9 N5 M
Pf1 = 10*log10(p);4 y6 m: L7 s7 o- F% f1 `
for i = 1:80, L0 U( ^/ B: _5 m$ r: a
Pf1(i*100 + 1) = Pf1(i*10);
% ~- I: {& D8 j3 M; Jend/ M) y; h3 @2 z* j6 F( D
subplot(2,1,2);
. f4 h. ~' a/ w6 M* Lplot(ff1,Pf1);
1 t& R4 Q: l$ @# d1 P. O! v1 l; Yaxis([-50,50,-50,50]); %画出单极性不归零NRZ波形功率谱密度& Z: u& r: o- g2 r7 Y9 b
grid;
. E) K+ [0 i$ O6 e%*********************************************************************. p1 W5 Y0 i# m0 `
- Q0 x1 _: P1 c
%*********************************************************************' L, f4 M0 |& F$ ^1 C
%求单极性归零时域波形与波功率谱密度
" A% C* |4 o7 B# a6 Efigure(2)6 Y$ I1 f: O1 a2 {$ W
subplot(2,1,1);' {6 _4 E) R! [) V/ q7 D/ a
plot(t,yt2,'r');
4 m6 F1 i. |; e5 btitle('单极性归零RZ波形');
% }# A( O' q' n9 jxlabel('时间t/s');$ G1 [6 P/ I* Y O
axis([0,20,-0.5,1.5]); %画出单极性归零RZ波形功率谱密度
8 J; ]! ]8 H, z t6 ugrid;, D: f# H2 G1 W; V+ i" d8 \2 P1 ]3 a
: `5 C% H& `7 c! r
Ft2 = fft(yt2);
z4 n* w: c9 AFt2 = fftshift(Ft2);% ^$ L9 O6 n: a
p2 = (Ft2.*conj(Ft2))/N; %计算功率谱密度
' [' |; i' M( \9 a* Q& J" Off2 = (-length(Ft2)/2:length(Ft2)/2-1)/10;9 U1 Q" U7 h0 H
Pf2 = 10*log10(p2);
* T, a3 p u: m5 C0 }for i = 1:800 a+ I# ]! o# _. q8 d9 m$ _
Pf2(i*100 + 1) = Pf1(i*10);
0 e6 z0 n$ ?( V3 v- f: l' Wend s5 o6 z! e1 k* x" ?
subplot(2,1,2);
% f7 G- P4 L, ^2 y4 splot(ff2,Pf2);. {( \6 Q9 K$ {1 Y5 o. H3 X
axis([-50,50,-50,50]); %画出单极性不归零NRZ波形功率谱密度; ~% H! \8 t8 m$ Z3 x! J
grid;2 a. u7 i, ?( Q& Y
%*********************************************************************
" r5 i# J: u: L. q, S3 a+ ]* _
%*********************************************************************
: v+ D" M1 o' _9 M%求双极性sinc波形时域波形与功率谱密度
( t* o6 @5 X; a* `2 B! V4 \figure(3)
' r6 m( ~8 |. vsubplot(2,1,1);0 [3 t7 A3 d+ k3 |
plot(t,yt3,'r');
/ S. W: m1 O6 I; `4 g6 [- Atitle('双极性sinc波形');% U5 w- W5 e' K
xlabel('时间t/s');
4 a! n( @6 U1 k7 T) Y% c8 @1 i/ Gaxis([0,20,-1.5,1.5]); %画出双极性sinc波形功率谱密度4 Y# |1 `6 u: w5 M |
grid;
0 c1 |4 M% O9 g' @3 J2 P5 y8 ~3 K% G$ g) p. }, a& q0 w: y6 \0 \6 ]: v7 R# g
Ft3 = fft(yt3);% [7 @5 y& h1 Y. A7 p
Ft3 = fftshift(Ft3);5 S- h3 a4 p4 ^. ^8 Y( u; J# O- }
p3 = (Ft3.*conj(Ft3))/20; %计算功率谱密度
, K& u; W6 u' ~ff3 = (-length(Ft3)/2:length(Ft3)/2-1)/10;
' ~" c% n0 y7 Q% J, J3 M, R2 J( Y* yPf3 = 10*log10(p3);
0 M" K. _% _# }1 e0 Ssubplot(2,1,2);* z4 t0 j) v: z) }; G8 x
plot(ff3,Pf3(1:length(Ft3)));+ P; C7 ^& p/ f7 Q) y/ p/ ]: z8 l
axis([-50,50,-50,60]); %画出单极性不归零NRZ波形功率谱密度7 C! d5 U( i/ f! b
grid;
, U7 `+ D- T& n%************************** |
|