|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
》这一题的重点就是首先把码元表示出来,这里我是使用了randi([0,1],1,N);
" W: h4 |' V8 W2 ]% U) {+ s4 n: O+ ?0 ], y1 s3 N# Y- l. t
随机生成了0或者1,生产了N个随机数。
( y. x i: K: G9 f R) g- ]
8 n# L: i. _: V l1 \》接着表示基本码元,这里的是单极性不归零NRZ码元,所以gt1= ones(1,N_sample);%不归零。之后就应用基本码元函数来生成所需要的最后的序列。
# v" V" `1 d5 {% w) ^5 _$ H% z, u/ Q3 Y( ~! o& z0 p# E% {' N
》再根据所生成的每一个码元把基本码元添加到里面。/ j k# H" E4 M6 c& h0 l6 S
7 a9 e- U4 N0 c7 @5 C
yt1((i-1)*N_sample+1:i*N_sample) = gt1; 4 F' ` Q9 L& C" \/ `: S
* t% B; l- R# c9 }$ |) D》最后利用快速傅里叶变换fft得到频谱,再用conj求出共轭这就相当于求了频谱模的平方。接着除以时间N就可以得到功率谱。
' Y3 j0 r5 d7 Q8 r9 b( V3 u6 _; S$ Q7 _+ K6 d
》在生成的图我们会发现有许多的冲激,那么你就可以看看这些冲击都是在哪一些位置,试着去掉着一些冲激。
3 {# x) y) n9 {& d) A1 J: F) ]; }0 O0 a, D5 o' v
for i = 1:80 * X1 ?8 L0 d8 |
5 y+ }# C$ J" r" e, Y# K8 q Pf1(i*100 + 1) = Pf1(i*10);
/ s7 B' h$ I2 x2 a! K$ [) ]( j5 y9 b2 t# O* b2 w8 r) T
end$ u1 u# ~0 r, i4 B8 B9 e& ?
( E v( E4 _2 z& h
要生成别的码元表示只要稍微修改即可。
: z/ ~7 o9 h2 t0 G
m& p6 @1 e8 Q) k8 u% ~; |) _最后参考代码是:(图的显示的时候要多运行几次,最后效果才出来)
9 {8 r! T2 z5 X3 n" y; _1 ?( m
; F# V9 `" G* l9 k& w% communication principle
: Z! @ o$ o! N: o% Lab 6 problem 10 }3 k& D7 i% h9 V
function single_polar_code' @. ^! l! ?2 j: T0 w* G8 a
clear all;5 I3 H3 ]# x @+ D
format long;# T" a1 f# ]5 x# m0 y0 F' O+ H) `2 y
Ts = 1; %码元周期
* ]8 g, T: i4 t6 D# w8 _N_sample = 128; %每个码元抽样点数) {6 A x* i* ?7 \" ^7 W L
dt = Ts/N_sample; %抽样的时间间隔0 ?, m' o: f5 r5 W9 f% P+ [( r
N = 100; %码元数
# P: t8 v0 m" {) X4 _/ e! v/ At = 0: dt: (N*N_sample-1)*dt;/ T" F1 E4 \7 q$ U, B. Y4 h
% 基本码元 g(t) = 1) n+ [' d( n( r
gt1 = ones(1,N_sample); %不归零3 f5 @! O2 P4 R. w0 @
gt2 = [ones(1,N_sample/2),zeros(1,N_sample/2)]; %归零,占空比为0.5 ~8 f" t: ^- D* A. b4 o
gt3 = sinc(2*t(1:N_sample)/Ts); %sin(2*pi*t(1:N_sample)/Ts)/(2*pi*(1:N_sample)/Ts)
$ }0 P6 ~; U- d' {9 Ogt0 = zeros(1,N_sample);6 f1 A$ m/ Y [3 \# e4 }5 c
2 ~4 N2 m2 e, ]- |/ R8 ?% e5 V7 H%生成随机码元
0 j2 c- m% m3 |: X! }random_code = randi([0,1],1,N);
7 j- J3 g4 W$ b2 n* G% h& m) ` A, O; B; N; P* N! ]( `1 g6 U
%单极性波形的最后结果0 N( |1 u0 M1 H: ]' @8 ]3 o
yt1 = zeros(1,N*N_sample-1);
( V2 A* b# P; |( Zyt2 = zeros(1,N*N_sample-1);
0 Q& b$ `$ x% Q, Z# ^8 z5 c% x0 _yt3 = zeros(1,N*N_sample-1);9 J) E, P- i( g( j
for i = 1:N
% W/ ]* B! T6 y6 T) J- A, c! @ if random_code(i) == 1 %得到波形图 b8 b3 C: v$ f
yt1((i-1)*N_sample+1:i*N_sample) = gt1; %单极性不归零NRZ波形
$ ?: G6 l: w: r( r; F. m yt2((i-1)*N_sample+1:i*N_sample) = gt2; %单极性归零RZ波形
! q. t7 ?* c2 z# Q% V$ r yt3((i-1)*N_sample+1:i*N_sample) = gt3; %双极性sinc波形
, i( V! Y& Q2 \% l! j else
@, r3 P6 J/ b2 c6 u6 J1 P8 m6 r yt1((i-1)*N_sample+1:i*N_sample) = gt0; %没有这一行会经常报错
# z) V9 Z2 [. B1 ?8 [ yt2((i-1)*N_sample+1:i*N_sample) = gt0;
/ }$ x; d. s7 o8 s; m6 \ yt3((i-1)*N_sample+1:i*N_sample) = (-1)*gt3;/ c1 F# \/ _3 o7 L5 ^- @
end
; ~) V! w# W5 v+ R. `end, u2 h2 _1 D$ k4 [7 Q$ w
0 a" U- j: D- t# k%*********************************************************************
1 ]9 w7 q, G! }%求单极性不归零时域波形于波功率谱密度# w% O. B$ P/ K$ ^& H
figure(1)
. u& W- E& n, y) Gsubplot(2,1,1);
6 p6 S5 M5 R. ^$ Bplot(t,yt1,'r');
4 G6 q+ \" `* U6 ytitle('单极性不归零NRZ波形');! R: T% q* A; }
xlabel('时间t/s');
7 ?+ r. i+ }: q. a7 uaxis([0,20,-0.5,1.5]); %画单极性不归零NRZ波形信号幅度频谱
; Z9 q) L( z, A8 `grid;
2 T' S" ?8 ~ n' ] } k% R/ q& D# j( s! p
; z& ]2 u0 r* `7 p/ k4 IFt1 = fft(yt1);
# p- }7 }6 [" o: NFt1 = fftshift(Ft1);2 Y# }( d& N5 O6 m6 i
p = (Ft1.*conj(Ft1))/N; %计算功率谱密度 + Y* |) q8 Z2 ^8 R
ff1 = (-length(Ft1)/2:length(Ft1)/2-1)/10;
* ^& E* |2 m ?! NPf1 = 10*log10(p);* D8 b5 H. \- s8 H7 x2 Z
for i = 1:80; \5 ^ l* w& m2 d6 @! M
Pf1(i*100 + 1) = Pf1(i*10);
8 ~2 c4 ^# ]. j Wend+ g8 M' z! _1 K5 `# b0 V, A% A
subplot(2,1,2);' e) z) r$ o _% g1 F* T( W. \5 x
plot(ff1,Pf1);
( n6 g3 y1 O! }) Yaxis([-50,50,-50,50]); %画出单极性不归零NRZ波形功率谱密度
2 [1 q7 I9 o" x$ ~grid;
! G5 ?8 ~6 |7 F2 Y$ v- j%*********************************************************************1 M7 A% ~/ U, B% a3 l, o8 ]
. X! Y, E+ G8 L" x4 X
%*********************************************************************0 W$ ~3 [3 ^3 g+ {2 b- U
%求单极性归零时域波形与波功率谱密度
|% ?. ^, j1 K: O) g' s' ~& o4 S5 gfigure(2); ]: X- ]' E! D/ o2 Z- J3 H
subplot(2,1,1);/ _8 {% n6 x: a# p& d4 K
plot(t,yt2,'r');; s- ~; A* { o! i, G3 y5 _
title('单极性归零RZ波形');
! _7 Z& m4 w5 K3 t% M/ L0 Rxlabel('时间t/s');0 Q& v0 I" S: J$ {
axis([0,20,-0.5,1.5]); %画出单极性归零RZ波形功率谱密度
) _* ^! }1 Y {, }grid;
( h4 w; i _9 D" K+ f) \! i/ [) I2 P6 E2 t, R) h& U
Ft2 = fft(yt2);
1 v+ {; [+ E% [, JFt2 = fftshift(Ft2);
8 Z4 H; x8 C" M6 n4 Mp2 = (Ft2.*conj(Ft2))/N; %计算功率谱密度
( o/ a! z2 c4 j( t" \ff2 = (-length(Ft2)/2:length(Ft2)/2-1)/10;2 B. I8 O) {: O2 B- e, l' A1 E
Pf2 = 10*log10(p2);
; [6 ]+ J7 Z; r5 rfor i = 1:80
7 @& \) x' W1 @! s c6 ? Pf2(i*100 + 1) = Pf1(i*10);
+ B4 P8 q! y7 V$ u1 N& Pend
: O' d9 S( Y) x! b$ I6 @1 k: X5 x* Asubplot(2,1,2);
, A) S* j) S- |plot(ff2,Pf2);: V. y I4 P3 ^4 b
axis([-50,50,-50,50]); %画出单极性不归零NRZ波形功率谱密度; f. N" B3 K! {" x4 m1 K% S
grid;
/ i* x; b; f4 O! Q%*********************************************************************" k& }0 Y- g( l/ j# X* \
* \% s$ C, U6 } b2 c%*********************************************************************/ g3 a$ Z8 v, W
%求双极性sinc波形时域波形与功率谱密度( G8 g8 J+ v% B: k( Y1 k; U- T _' h9 Q
figure(3)
1 X3 i c5 p! y1 V% R) msubplot(2,1,1);
0 k+ f7 A; h( n/ Kplot(t,yt3,'r');; S) D0 N5 T. |( c
title('双极性sinc波形');8 }# F- ~* x% F
xlabel('时间t/s');
! B( ^# U0 R7 i: Q0 kaxis([0,20,-1.5,1.5]); %画出双极性sinc波形功率谱密度
* v0 A& ~ {2 E. A! Cgrid;
. S! P* ^+ I* h) W6 q8 l# _4 S
4 a) _/ ~' Z7 K4 U/ mFt3 = fft(yt3);6 G% R3 M; q5 o, N8 s" L, j8 B0 F
Ft3 = fftshift(Ft3);6 X$ G& n1 p) J) V) u
p3 = (Ft3.*conj(Ft3))/20; %计算功率谱密度 - V& g( s0 a- G {* J# j
ff3 = (-length(Ft3)/2:length(Ft3)/2-1)/10;4 v1 a. M* e7 Y q/ S
Pf3 = 10*log10(p3);
7 s2 d- q6 [6 M. h1 K* K$ Esubplot(2,1,2);
( m$ N Q3 ], ^/ |! iplot(ff3,Pf3(1:length(Ft3)));* y' f5 h1 V* O# l/ c% Y3 ]) [1 A+ x# {# X
axis([-50,50,-50,60]); %画出单极性不归零NRZ波形功率谱密度/ t3 r8 z1 v1 \' c; ~
grid;
/ [5 b8 `, b% i4 j%************************** |
|