|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
》这一题的重点就是首先把码元表示出来,这里我是使用了randi([0,1],1,N);
" Q; W; u: [7 V$ E8 I% L6 R$ ]4 n. s
1 h$ `1 [$ `) k$ U, ?随机生成了0或者1,生产了N个随机数。
, n+ x. f9 X0 T% v% a" B* a: u" O) Q. v
》接着表示基本码元,这里的是单极性不归零NRZ码元,所以gt1= ones(1,N_sample);%不归零。之后就应用基本码元函数来生成所需要的最后的序列。* \1 Z" i8 W9 i4 L
* r. ` x+ B: ^" K
》再根据所生成的每一个码元把基本码元添加到里面。
; Y4 Q* L2 N9 Q$ J5 v5 |" B
+ s! Z8 g8 S; t- m$ cyt1((i-1)*N_sample+1:i*N_sample) = gt1;
6 r v) o9 i/ E* l' ~, u
* X4 @* q4 w, ~: _》最后利用快速傅里叶变换fft得到频谱,再用conj求出共轭这就相当于求了频谱模的平方。接着除以时间N就可以得到功率谱。
% N, N' \- L9 ^/ o% X# ^/ `" |8 L' @$ d" S3 q
》在生成的图我们会发现有许多的冲激,那么你就可以看看这些冲击都是在哪一些位置,试着去掉着一些冲激。7 C+ y, s+ A# L. e
5 N1 e6 J3 G5 d( E9 b ~for i = 1:80
0 \/ i% S& B' C* i* E
: p. I3 R8 U( {. N Pf1(i*100 + 1) = Pf1(i*10);1 @+ V6 A7 ]9 L# n9 r
7 @0 I. I* k: J' J: A, K# x
end
3 b. L+ H2 L/ K( x# x
, A6 c. j" t- k9 }要生成别的码元表示只要稍微修改即可。8 j( p& Z4 T3 y( k- R
$ u. N" a9 W. Y0 \最后参考代码是:(图的显示的时候要多运行几次,最后效果才出来)
! n! D* ~4 d3 ~% p% m0 n
8 e X* A+ P* j% communication principle
3 v$ i1 X& K O. w" |+ l; B% Lab 6 problem 14 j8 d/ w9 j; J% {8 w; J4 d9 Z1 q. l% y
function single_polar_code5 j X& k1 p. b2 e2 h
clear all;3 B+ {7 U; {7 C# u; M
format long;% @0 v2 ~1 }# p* X
Ts = 1; %码元周期
- [! ^, O; J* J6 N0 Z8 t3 _7 XN_sample = 128; %每个码元抽样点数
% E6 z. w Z8 g Y o) i/ fdt = Ts/N_sample; %抽样的时间间隔! m) b2 ~# b% Z; [; b) @% t
N = 100; %码元数
$ L7 X2 {6 `& L" }9 {4 pt = 0: dt: (N*N_sample-1)*dt;
2 @9 r9 l/ I: f% 基本码元 g(t) = 1- p9 H4 O5 ~5 p0 ~2 E
gt1 = ones(1,N_sample); %不归零1 q3 }$ k- M! S9 Z! g2 u/ q
gt2 = [ones(1,N_sample/2),zeros(1,N_sample/2)]; %归零,占空比为0.5
$ V! A5 M+ h5 \7 \1 ]/ Z2 d& F6 y/ `gt3 = sinc(2*t(1:N_sample)/Ts); %sin(2*pi*t(1:N_sample)/Ts)/(2*pi*(1:N_sample)/Ts)1 ]$ I$ g5 p: P# ]6 Q- U
gt0 = zeros(1,N_sample);4 ]$ j! y+ U% }; E1 x: }
" I0 F( ~5 X; y) P' ]' d%生成随机码元
, b4 W; A/ u# e4 K" M; w- k" t' orandom_code = randi([0,1],1,N);
+ D2 Q5 b: J) B4 |. c5 R& _5 s* F
6 J& {$ e3 N6 h6 m7 X& Q/ W- ~9 N$ q%单极性波形的最后结果8 @' t3 y7 D+ E7 v+ i P
yt1 = zeros(1,N*N_sample-1);
3 I' I2 { X; eyt2 = zeros(1,N*N_sample-1); p0 B9 {" a; h- r
yt3 = zeros(1,N*N_sample-1);
" a3 _; n8 V# G2 X1 c4 P- ifor i = 1:N
k5 v! l' ^. R6 O if random_code(i) == 1 %得到波形图
5 |& }- m. W; V; L' v1 X yt1((i-1)*N_sample+1:i*N_sample) = gt1; %单极性不归零NRZ波形
- _' a' W! P: \( [+ a. T yt2((i-1)*N_sample+1:i*N_sample) = gt2; %单极性归零RZ波形
M3 B/ x# i$ V- S0 S/ \- O yt3((i-1)*N_sample+1:i*N_sample) = gt3; %双极性sinc波形
. j/ L3 ?6 U( O9 |; N M else; X: y0 u& W; v" n& O
yt1((i-1)*N_sample+1:i*N_sample) = gt0; %没有这一行会经常报错! F8 W5 d5 o r4 ^" y+ l
yt2((i-1)*N_sample+1:i*N_sample) = gt0;
7 f5 p$ [) W D/ \" C! x/ t5 F yt3((i-1)*N_sample+1:i*N_sample) = (-1)*gt3;% c/ \6 \7 f1 K0 T. k$ [
end
) v j) l/ R( b# i, s# Mend, _; J1 j0 [) R% |; D
# V- @5 ?" D, ]' p
%*********************************************************************
8 c. b4 ?6 d2 R' b%求单极性不归零时域波形于波功率谱密度5 c2 ^8 W c$ K1 y! r" ?4 |
figure(1)1 ^" K C. l9 [
subplot(2,1,1);0 {' ~4 o+ H: h$ B( K3 P
plot(t,yt1,'r');
[! K- z% ~! Y0 Dtitle('单极性不归零NRZ波形');+ s! [9 C9 y1 A
xlabel('时间t/s');% s, l, J9 V; h) E. s& U* _8 [
axis([0,20,-0.5,1.5]); %画单极性不归零NRZ波形信号幅度频谱
1 d* P1 ?- H! v ugrid;
4 {) H7 |& I4 x' I4 X6 ?4 t+ ?# f3 s( V- u9 u
Ft1 = fft(yt1);4 H/ @, b2 I6 V0 |6 b, R) K
Ft1 = fftshift(Ft1);
- o7 }, i- @7 {p = (Ft1.*conj(Ft1))/N; %计算功率谱密度 ; N7 A4 _& [1 s1 k& f
ff1 = (-length(Ft1)/2:length(Ft1)/2-1)/10;$ g g [: z& E
Pf1 = 10*log10(p);; h" C% m! }0 I9 N7 D8 n, E
for i = 1:80- F k8 w. t3 h7 X# s$ o7 S0 W' d
Pf1(i*100 + 1) = Pf1(i*10);. ~/ P& e! i# T( `; |& C% L
end& c, B- V5 [7 Z/ g7 B$ a, I* G; ?
subplot(2,1,2);
7 n$ p$ b- P' Q$ Y' [plot(ff1,Pf1);, F/ ~# k' U9 Z- E9 A
axis([-50,50,-50,50]); %画出单极性不归零NRZ波形功率谱密度/ M! Z% Z' u: T. X4 K# B
grid;
) q7 s! h8 S P, I' Z7 h%*********************************************************************4 ^# P5 h# @& b/ z( `" K$ s
. Q0 J6 U9 h" I6 R%*********************************************************************
2 N R* t# l+ y4 V! a; y6 S7 I%求单极性归零时域波形与波功率谱密度
8 Q: S% a& C) B4 I2 Tfigure(2)
( o1 w/ i& J/ N4 s4 ssubplot(2,1,1);
7 P* Y. v6 v5 g [9 u0 C. n3 `9 Mplot(t,yt2,'r');
2 l% B8 m: u' @% {3 |! qtitle('单极性归零RZ波形');# T+ C7 X$ | I9 g( S! L
xlabel('时间t/s');* j' S6 z9 S$ k! i
axis([0,20,-0.5,1.5]); %画出单极性归零RZ波形功率谱密度- H2 J( @1 n$ m2 x
grid;
9 n5 {, F* w0 x/ p& y, R4 y, w( \1 ~7 D# @' J( W# D- }
Ft2 = fft(yt2);6 B" }+ |4 v' o
Ft2 = fftshift(Ft2);
& D2 w& \2 s5 u$ @' O* e8 Cp2 = (Ft2.*conj(Ft2))/N; %计算功率谱密度 / I$ q. o/ r9 l3 P3 e8 E
ff2 = (-length(Ft2)/2:length(Ft2)/2-1)/10;
h) I2 l( t( m; iPf2 = 10*log10(p2);. G9 r: r& X0 o
for i = 1:80
: d# i8 X) [& T" M Pf2(i*100 + 1) = Pf1(i*10);
1 y; w# o/ h1 [/ O+ Aend: M- U2 f8 ~! f
subplot(2,1,2);
/ J, ^3 Z6 v }: `9 W+ Splot(ff2,Pf2);" i- n! L, o* f7 b& t2 E; j
axis([-50,50,-50,50]); %画出单极性不归零NRZ波形功率谱密度" o7 M: }7 {% Z
grid;1 J- \* D. m! U* P: C
%*********************************************************************
4 L. B2 ?8 h- a
) x. v! q, H7 O5 T( _+ _%*********************************************************************- H9 r0 D) T7 W$ a4 B+ x
%求双极性sinc波形时域波形与功率谱密度 y$ L7 O; a; f
figure(3)0 i: Q, S3 \! q0 G4 y5 H
subplot(2,1,1);) V8 o6 r/ K. _5 |; E! m% @
plot(t,yt3,'r');
+ x$ k- T! p: t6 E' B, a! ztitle('双极性sinc波形');) E/ f7 v8 g8 l9 m: @; Y) X$ T
xlabel('时间t/s');: `# ~' T' K* v
axis([0,20,-1.5,1.5]); %画出双极性sinc波形功率谱密度
) l7 v: z9 Y+ h v$ ngrid;
2 V1 p4 T0 J1 K5 n, s- @- T7 `! D: d& ]
Ft3 = fft(yt3);
+ @+ S [6 K7 `1 ]. K: o `Ft3 = fftshift(Ft3);
+ ~# c6 ]: x. \9 M vp3 = (Ft3.*conj(Ft3))/20; %计算功率谱密度
) O" _: |8 j# V& p! D' ~/ Z: Uff3 = (-length(Ft3)/2:length(Ft3)/2-1)/10;9 Y$ u9 {1 O8 `0 Z) l! O
Pf3 = 10*log10(p3);
1 h X2 c+ E- a+ R+ o4 G% l+ msubplot(2,1,2);
. G. ?0 d' X# c3 e2 [- Fplot(ff3,Pf3(1:length(Ft3)));
: Z7 s+ Q2 a/ Z n8 [! b. Laxis([-50,50,-50,60]); %画出单极性不归零NRZ波形功率谱密度; S8 S" V j& Q8 A# N0 j9 n
grid;; N/ W* \2 R. |3 V0 D) o+ D' H* W
%************************** |
|