|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
》这一题的重点就是首先把码元表示出来,这里我是使用了randi([0,1],1,N);
+ [6 F9 Z8 Z/ R7 R4 j
9 ^8 R% b- B; ^& L) e ]( M随机生成了0或者1,生产了N个随机数。
: y/ Z/ `. A5 o1 ]9 z# n3 L& ~' B$ {9 M' N' ]% _
》接着表示基本码元,这里的是单极性不归零NRZ码元,所以gt1= ones(1,N_sample);%不归零。之后就应用基本码元函数来生成所需要的最后的序列。
+ K% t- ]( m/ V6 A
8 Z# l2 p9 H6 |1 m* g1 Z: _; d3 a》再根据所生成的每一个码元把基本码元添加到里面。
/ D9 L! M! i- w0 j9 A3 C' C1 t& x6 C# l$ \/ A* T
yt1((i-1)*N_sample+1:i*N_sample) = gt1; 2 A( ]$ n2 }8 U# m$ W2 t. m& [
% e, Y9 k! H5 i) w3 O
》最后利用快速傅里叶变换fft得到频谱,再用conj求出共轭这就相当于求了频谱模的平方。接着除以时间N就可以得到功率谱。; @% L. x5 J; }- r, T
$ |7 {+ X9 g' i# r》在生成的图我们会发现有许多的冲激,那么你就可以看看这些冲击都是在哪一些位置,试着去掉着一些冲激。2 ` _: @8 y2 J" g
, c* X: C. y5 x! B% E& Xfor i = 1:80
' c6 l0 g+ K' l$ H P1 x- ^, V* c* Z
Pf1(i*100 + 1) = Pf1(i*10);) k4 Q' P3 H. Q |3 N
, l" f. e- c% C% `' [2 J/ Kend( N/ g* G! s) @0 D5 M( P
0 ?- D& i2 w0 r4 p. i P4 B要生成别的码元表示只要稍微修改即可。6 z) q+ t' s4 A. c# x) c+ G4 F8 X. a
5 j, o! |' P8 D& l. b最后参考代码是:(图的显示的时候要多运行几次,最后效果才出来)5 @1 h2 y, Y! E" r5 H; X
1 ?+ C' N$ [ r! y; Y' |% communication principle8 d3 Q7 b/ `0 Y+ y' ^1 {
% Lab 6 problem 1
$ C) V0 G# c/ t0 \function single_polar_code L7 }! u5 U% ~1 H$ D5 C0 n+ n
clear all;% ^7 o& L. W! x4 k# Y; B
format long;" i% v N* y3 d- N
Ts = 1; %码元周期: w, a& K+ D0 d/ h
N_sample = 128; %每个码元抽样点数
, M) P4 U. F; d6 Pdt = Ts/N_sample; %抽样的时间间隔9 ]2 z3 `4 T" _, h8 z2 x
N = 100; %码元数) j/ k* H5 w! i: X2 i* w
t = 0: dt: (N*N_sample-1)*dt;0 c+ C: d$ K2 p+ E! i
% 基本码元 g(t) = 1$ C0 O/ D B, \. Y3 l# Y; M8 {
gt1 = ones(1,N_sample); %不归零
8 I/ G6 U _6 xgt2 = [ones(1,N_sample/2),zeros(1,N_sample/2)]; %归零,占空比为0.5
+ R) c* {; l9 |* tgt3 = sinc(2*t(1:N_sample)/Ts); %sin(2*pi*t(1:N_sample)/Ts)/(2*pi*(1:N_sample)/Ts)3 z& I+ y3 m9 S: Q5 y1 I6 k, A
gt0 = zeros(1,N_sample);
% O ^2 C/ b- V, V3 B" {
0 _% a" U9 p0 H2 M2 p' p9 c%生成随机码元
; e; s; j* K! [+ @( Jrandom_code = randi([0,1],1,N);
) W& }$ k: R$ K" x+ E$ s
( F6 x" G: W, [ d. w0 O%单极性波形的最后结果
) R- M/ `. M" u) A2 Jyt1 = zeros(1,N*N_sample-1);
& n& ~+ k' \, R9 S( x# Eyt2 = zeros(1,N*N_sample-1);. G0 C3 I$ Q# h
yt3 = zeros(1,N*N_sample-1);% r$ P* I1 H8 a; p
for i = 1:N
7 J+ J) A& X ? D. w) l if random_code(i) == 1 %得到波形图. `' t6 i8 o( P4 y
yt1((i-1)*N_sample+1:i*N_sample) = gt1; %单极性不归零NRZ波形; m" U }" U. U% M$ R7 I
yt2((i-1)*N_sample+1:i*N_sample) = gt2; %单极性归零RZ波形: }3 ^" }* T) D7 J y
yt3((i-1)*N_sample+1:i*N_sample) = gt3; %双极性sinc波形
6 @0 [0 T! u( N! }: i else
- Q q% u7 d/ ^. P. X/ I! R yt1((i-1)*N_sample+1:i*N_sample) = gt0; %没有这一行会经常报错1 O2 t9 j- q" K* Q( W* I
yt2((i-1)*N_sample+1:i*N_sample) = gt0;
5 @- N* t! Q: q" S yt3((i-1)*N_sample+1:i*N_sample) = (-1)*gt3;
5 ]5 ?6 G- @1 I( b. E end
! D( _5 H' c/ q$ cend3 W" }0 ]3 U% S& R3 f Y/ v+ J4 t
) ]4 T% g6 b1 E3 K- H
%*********************************************************************" x' g, }+ U; H- @
%求单极性不归零时域波形于波功率谱密度
8 ~ I$ q' m$ W$ y9 jfigure(1)
0 c* @" N: r) M+ ], xsubplot(2,1,1);/ C3 J6 U8 H, E1 E8 I* R# y+ U
plot(t,yt1,'r');8 w, h. l9 y3 G+ B. v
title('单极性不归零NRZ波形');
& w @- P. E, ~8 xxlabel('时间t/s');
8 k8 t" J$ v+ G9 W5 M, haxis([0,20,-0.5,1.5]); %画单极性不归零NRZ波形信号幅度频谱
6 n4 b5 S2 F$ w8 r0 E/ H$ c sgrid;
: g O# ]4 f& |7 H3 x. x$ k
- n$ R$ D6 J" M& yFt1 = fft(yt1);# [% u5 ]- _: o5 ~3 q( E
Ft1 = fftshift(Ft1);
4 |5 D7 L6 Y8 \: Sp = (Ft1.*conj(Ft1))/N; %计算功率谱密度 f- D8 S7 A+ q k( v- b$ t
ff1 = (-length(Ft1)/2:length(Ft1)/2-1)/10;2 f6 E" X* j. E# v: v
Pf1 = 10*log10(p);8 P! z) R! Q/ K. D" v1 o) o6 o
for i = 1:80
; ^, B. F9 n; s. ^ Pf1(i*100 + 1) = Pf1(i*10);
+ ?; r/ {3 O. x* [( j. ?& |3 c) Gend3 Y. Q# H' z6 I _2 k' L* ]
subplot(2,1,2);& f& K- r( w! i0 p0 G8 @ U: ^
plot(ff1,Pf1);2 m* a) C( c) B1 s7 D) S
axis([-50,50,-50,50]); %画出单极性不归零NRZ波形功率谱密度: V# d- L5 M+ [3 j. Q0 U+ K4 M2 Y
grid;+ g: z: w/ d9 f0 a: J% C
%*********************************************************************) [6 G5 G) y* I8 g: u
" s8 ?4 u) _* Y8 q0 x%*********************************************************************$ Z( q+ a8 c+ e" F) z; a7 @
%求单极性归零时域波形与波功率谱密度5 g% y2 A* [* ]1 ]2 l
figure(2)6 t: ^8 ~) r3 h7 V$ _/ ]( F1 b
subplot(2,1,1);' _1 |; ]% A/ B9 D1 b5 H! W/ b+ W
plot(t,yt2,'r');
. B8 U9 v7 t8 D5 ~. C8 E9 Ktitle('单极性归零RZ波形');
3 h- |. @* T Y5 c, W6 i" p( bxlabel('时间t/s');
- _9 n c L3 l: \ w1 aaxis([0,20,-0.5,1.5]); %画出单极性归零RZ波形功率谱密度
" G8 V/ b( @9 z( _" H3 \grid;
n# J$ b& f3 A& x, `: Y- I. {, @ C* g {+ o' y, i3 f5 z: v5 L
Ft2 = fft(yt2);8 a3 ]# e( _" A% L# s1 [
Ft2 = fftshift(Ft2);
2 {" O8 z" l+ f$ r7 s( C3 dp2 = (Ft2.*conj(Ft2))/N; %计算功率谱密度
5 m* P6 [3 j1 p. Tff2 = (-length(Ft2)/2:length(Ft2)/2-1)/10;
6 G3 B8 l8 \# a2 M% VPf2 = 10*log10(p2);
- ^4 r* O7 U) ]0 z" a" A: ffor i = 1:80
6 y3 g ^( O" X# f6 v$ M x Pf2(i*100 + 1) = Pf1(i*10);
: _$ |# c0 }, \* r; aend
! l( Y! u& u/ ]; Z# A* Nsubplot(2,1,2);
2 m+ S1 ~& s) E' F2 hplot(ff2,Pf2);: y* }. o+ C$ E( z4 Y w N; Y/ X
axis([-50,50,-50,50]); %画出单极性不归零NRZ波形功率谱密度
. H% G5 h% S' T6 T* |! G0 B( f. v6 Tgrid;
) v$ ~# b; C( u' v! \%*********************************************************************9 a, F! S/ [0 r& _
7 J) s! Z7 `1 R. u# l* ]
%********************************************************************* p: y! r5 ]+ o D$ w* T
%求双极性sinc波形时域波形与功率谱密度$ e5 ?. p2 W2 {
figure(3)
' B7 f! o. p# o7 n- ^, Lsubplot(2,1,1);
0 [3 K6 U' C1 C3 y# O [plot(t,yt3,'r');& N8 k0 Y% L# \- _5 Y( P
title('双极性sinc波形');
; [4 A5 E% A( l* C8 K9 s7 Axlabel('时间t/s');
9 M, Q1 U$ X; |* |0 W0 caxis([0,20,-1.5,1.5]); %画出双极性sinc波形功率谱密度& F% o! n4 Q# O7 L6 v9 \; m! j
grid;+ ~2 P% D* k# D
3 Q1 m4 E8 B6 hFt3 = fft(yt3);
7 b4 t* d0 T0 |) h9 bFt3 = fftshift(Ft3);
( I* e+ l: ]& [* ap3 = (Ft3.*conj(Ft3))/20; %计算功率谱密度 $ U2 S7 S f# N* j) n& ^% ?& p
ff3 = (-length(Ft3)/2:length(Ft3)/2-1)/10;
( H. q+ i# ~5 X" B& L6 [Pf3 = 10*log10(p3);( v; ]6 q, N! g: u! ]9 @
subplot(2,1,2);
5 g: F3 R6 R$ o% m2 y& eplot(ff3,Pf3(1:length(Ft3)));
+ M6 T. I" }' waxis([-50,50,-50,60]); %画出单极性不归零NRZ波形功率谱密度
9 {: U8 _- d" P4 }9 y8 i- Qgrid;2 {4 T& Z7 L4 b4 u
%************************** |
|