|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
》这一题的重点就是首先把码元表示出来,这里我是使用了randi([0,1],1,N);
' q4 V9 V$ g+ @! Q8 t0 ?
& L# i( o3 F2 U) Q: Z1 \随机生成了0或者1,生产了N个随机数。$ ]# z: Z, q# h( m, M8 |) V- G" f& P
, ] }6 h- @; } h: J! X
》接着表示基本码元,这里的是单极性不归零NRZ码元,所以gt1= ones(1,N_sample);%不归零。之后就应用基本码元函数来生成所需要的最后的序列。9 v& p" }0 k) Z: M
8 q$ ^1 p! V+ A》再根据所生成的每一个码元把基本码元添加到里面。( ?+ Q# |3 D+ w
0 p& \& Y% I- y m; d9 d
yt1((i-1)*N_sample+1:i*N_sample) = gt1; . F* c2 ]$ }: w: _
: s( p; \: G) P8 \》最后利用快速傅里叶变换fft得到频谱,再用conj求出共轭这就相当于求了频谱模的平方。接着除以时间N就可以得到功率谱。
' C9 V& j2 }8 L. \ r7 x" u4 d. `
1 |' n( @1 @* ~# c》在生成的图我们会发现有许多的冲激,那么你就可以看看这些冲击都是在哪一些位置,试着去掉着一些冲激。$ K3 u) I! r) s2 j% K
! Z2 j8 E. [7 k5 Y6 X- b9 Rfor i = 1:80 9 ~- z" c8 a. k: S
* O! M" b' H* r Pf1(i*100 + 1) = Pf1(i*10);" }% i9 q1 ~' j' D1 z w, M, K
: D+ R9 ?8 ?9 N. b4 Eend
- z' h1 ?( I1 K! l1 z2 N8 M( H+ j; {, ~/ f/ G
要生成别的码元表示只要稍微修改即可。/ n$ e$ u( C3 G: P' U
+ J0 j5 e* `2 y) q8 w9 n8 } Z) r; k最后参考代码是:(图的显示的时候要多运行几次,最后效果才出来) v, k W; c; m& _6 ~
+ C3 J8 |+ ^& v- R
% communication principle
% L0 k& W' @( M$ P0 M0 i# G/ a8 p% Lab 6 problem 1# J* t3 i9 [2 A* E% U
function single_polar_code; S4 x: I, {: H" W
clear all;
( K) [/ e8 c$ D' a/ l# V8 J7 Rformat long;- H# K# N, Z, M( u2 ^ \* [( R
Ts = 1; %码元周期 l" B# T& b) `+ ?% y2 A, @$ \
N_sample = 128; %每个码元抽样点数9 _- g; r% h! h, u& h' _
dt = Ts/N_sample; %抽样的时间间隔! y( I; k: ?( A8 w9 ]$ `4 c
N = 100; %码元数7 m5 y Y2 a/ T+ i
t = 0: dt: (N*N_sample-1)*dt;) {3 _, h/ F3 a( I" p/ Y M/ c7 r+ Q
% 基本码元 g(t) = 10 \! e) T9 m% l. ^; R w
gt1 = ones(1,N_sample); %不归零: h* w/ B* ]8 J$ Z w# }
gt2 = [ones(1,N_sample/2),zeros(1,N_sample/2)]; %归零,占空比为0.5* ^! i; R9 V# Y2 }
gt3 = sinc(2*t(1:N_sample)/Ts); %sin(2*pi*t(1:N_sample)/Ts)/(2*pi*(1:N_sample)/Ts)
2 y; a; c) z0 I1 ` z0 K; N' ygt0 = zeros(1,N_sample);: k' o" k3 M0 q+ z( P
0 K. }" `. j" V# M7 a" J%生成随机码元
, s- O3 Z7 f; ]- i( ?5 K, T; a, ]random_code = randi([0,1],1,N);" {4 m0 ?& u; w& \+ w! W% o1 q
" _7 d9 z ]' @# I9 Z" F+ ~
%单极性波形的最后结果5 v) ~/ g+ r8 |1 n3 L: }6 S
yt1 = zeros(1,N*N_sample-1); , N! h' q) i S Y5 D
yt2 = zeros(1,N*N_sample-1);* u1 b' n7 ]4 r$ t$ X
yt3 = zeros(1,N*N_sample-1);, r/ m; n" {' i" u, @+ c) G+ d3 \/ o
for i = 1:N
+ h; e* a0 e) O) z$ F! b( \ if random_code(i) == 1 %得到波形图' T u! p% ^3 k, N. p7 R$ V# b4 b
yt1((i-1)*N_sample+1:i*N_sample) = gt1; %单极性不归零NRZ波形! B6 F$ C$ m6 y; G; F
yt2((i-1)*N_sample+1:i*N_sample) = gt2; %单极性归零RZ波形" f8 j& y$ J- Z/ z( g, @3 R
yt3((i-1)*N_sample+1:i*N_sample) = gt3; %双极性sinc波形
3 q6 p! `1 X& M1 C! C" e+ T else
# E% H1 C( g9 G' K( n, U: C yt1((i-1)*N_sample+1:i*N_sample) = gt0; %没有这一行会经常报错3 x5 L9 z& j$ v& a5 A" [* e9 O: [
yt2((i-1)*N_sample+1:i*N_sample) = gt0;
. I( f9 D, d7 d0 Z3 q6 j0 \ yt3((i-1)*N_sample+1:i*N_sample) = (-1)*gt3;( } x$ Q# U2 c3 b0 u8 H: P4 c
end J7 t" o2 Y' x( U, a# O7 a
end
6 F# n7 u- b/ B. G# n" `/ `) ^% q: Y9 F" j1 `5 G
%*********************************************************************
8 ]' L8 ]. U% c%求单极性不归零时域波形于波功率谱密度9 v: R- U' v1 }' E7 r
figure(1)
. j" k' N+ t) O4 l* i: w1 Csubplot(2,1,1);. T1 ~" R x5 ]' @
plot(t,yt1,'r');
) V6 Z" M0 L2 W1 c# l: H' n$ Mtitle('单极性不归零NRZ波形');
" [7 W) Q# y5 G9 Wxlabel('时间t/s');
$ _* p, Y4 t8 W9 ~* e$ K/ raxis([0,20,-0.5,1.5]); %画单极性不归零NRZ波形信号幅度频谱
5 k D5 x* h4 J1 @grid;+ z8 w7 v3 ~4 H8 A, a4 m, n6 q
# b8 M9 K" k( F
Ft1 = fft(yt1);: w- J, c* h/ o# }7 v2 M
Ft1 = fftshift(Ft1);! f" Q' N/ q8 K/ F. ~
p = (Ft1.*conj(Ft1))/N; %计算功率谱密度
, E& P" u A2 q" sff1 = (-length(Ft1)/2:length(Ft1)/2-1)/10;
* N/ t5 g- A, E! \7 n5 w( B3 sPf1 = 10*log10(p);% }8 k3 C/ y- [; y
for i = 1:80
0 { S! I, Q3 M+ i& d" r Pf1(i*100 + 1) = Pf1(i*10);
) B4 K2 I9 ^: D5 Hend/ m W0 {, N6 r1 q
subplot(2,1,2);
" M. I7 Z6 A$ e6 k2 [ N" U1 rplot(ff1,Pf1);# j3 B( ~" S0 s9 H7 p% t. ^1 F
axis([-50,50,-50,50]); %画出单极性不归零NRZ波形功率谱密度- Z# Q- ]$ O% T
grid;
$ j# a% P. T1 s7 Y8 [& |; h%*********************************************************************0 A6 D4 V: S* j
1 a8 ~6 {/ R: P# A, e# @%*********************************************************************
% P2 P: A( X/ i%求单极性归零时域波形与波功率谱密度
) C+ }0 `3 E: h9 Ifigure(2)* z" \, c7 ]7 @8 d
subplot(2,1,1);$ j; n9 B% D, n7 m& n# F
plot(t,yt2,'r');( A2 C3 }! W7 G7 K( r. V
title('单极性归零RZ波形');
, G, b% z2 O5 q, g% zxlabel('时间t/s');
% j+ @5 `4 w+ s( l" C& Eaxis([0,20,-0.5,1.5]); %画出单极性归零RZ波形功率谱密度
5 p$ a P; x7 [5 `5 vgrid;7 J7 L1 r# j' a% l& p
" Z# a! @& x* n% p9 _& UFt2 = fft(yt2);
! ^7 s1 w# a P; QFt2 = fftshift(Ft2);
9 g( }* q6 @- p0 I( B; u9 Qp2 = (Ft2.*conj(Ft2))/N; %计算功率谱密度 * j1 r3 g* S0 ~4 r& O, i. ]
ff2 = (-length(Ft2)/2:length(Ft2)/2-1)/10;5 p% `/ h9 ^$ @- a% c6 I: v1 n
Pf2 = 10*log10(p2);# O; ]. Z3 u; B1 P- o! Q9 N
for i = 1:80
8 b+ }" A; B' M* J6 G, V- X Pf2(i*100 + 1) = Pf1(i*10);
( q$ |, n5 E$ e9 V! x, i2 pend- }) ]/ E7 K* U# K: H# T5 I- K8 Y% Z
subplot(2,1,2);
3 Z0 ?5 W/ s' B) {5 U* _+ uplot(ff2,Pf2);
1 [: T O0 b$ |3 L" uaxis([-50,50,-50,50]); %画出单极性不归零NRZ波形功率谱密度
8 {' E0 J$ R' X% Y- j+ F2 sgrid;
% L* o" Y0 x( [3 O6 ]7 S& x%********************************************************************* F- F g. E8 X- h( h5 Y
- t) o8 r/ ?6 ~%*********************************************************************: t" a! P/ y- R2 g" A0 l' e% o: u
%求双极性sinc波形时域波形与功率谱密度
' e6 K. _/ `, Z# a: j; vfigure(3)" Z& L; x) f/ d& j& \& U4 I
subplot(2,1,1);
3 s; ]6 V: x+ S# {& Q5 H/ A. j7 `' Gplot(t,yt3,'r');
0 K$ I+ m( {! |! W% I1 ititle('双极性sinc波形');4 Q4 }" R; S. Y0 |7 l0 N# O; J( y
xlabel('时间t/s');
$ a: z& _! C# {! qaxis([0,20,-1.5,1.5]); %画出双极性sinc波形功率谱密度
( Y8 X* E! L; Vgrid;1 g- m: ^9 `, }& T# }: r
) ~8 ^2 L9 I! V4 {# a: U4 _
Ft3 = fft(yt3);! n( j4 o3 L4 b1 K' e: p6 l( v
Ft3 = fftshift(Ft3);
3 F+ C& X, p0 hp3 = (Ft3.*conj(Ft3))/20; %计算功率谱密度
7 `% n! q g; D- hff3 = (-length(Ft3)/2:length(Ft3)/2-1)/10;
4 `( H Z& T4 y# T, IPf3 = 10*log10(p3);! @" \; x$ L6 Z/ Y
subplot(2,1,2);. j8 `- ~5 a7 `* G* h
plot(ff3,Pf3(1:length(Ft3)));
: G D) L6 }3 _+ x! Haxis([-50,50,-50,60]); %画出单极性不归零NRZ波形功率谱密度2 r1 F! q, V6 g( E! I
grid;$ l3 m2 L: m: j
%************************** |
|