|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
》这一题的重点就是首先把码元表示出来,这里我是使用了randi([0,1],1,N);# O0 o6 o! ?$ t
. J D% x$ B& }8 d- ]9 |
随机生成了0或者1,生产了N个随机数。# d& J* I3 h; P2 u+ K# ^/ }. h- z; C
3 Z# [/ P6 v+ F》接着表示基本码元,这里的是单极性不归零NRZ码元,所以gt1= ones(1,N_sample);%不归零。之后就应用基本码元函数来生成所需要的最后的序列。/ P8 }9 f. S6 }& h) x5 J& h
) T2 |6 S T& J% S+ w A: e8 S+ z- g
》再根据所生成的每一个码元把基本码元添加到里面。* Z# w5 Y% ]4 L K# J7 O
0 ^+ U h- y6 }) k, f6 n. vyt1((i-1)*N_sample+1:i*N_sample) = gt1;
2 d, [9 R, Y6 f+ F8 C, L3 M R. }7 A3 u8 [: V
》最后利用快速傅里叶变换fft得到频谱,再用conj求出共轭这就相当于求了频谱模的平方。接着除以时间N就可以得到功率谱。1 M" m4 v- f" j' R
4 I, P4 Z( m a2 w1 ~ n, P2 {5 B @
》在生成的图我们会发现有许多的冲激,那么你就可以看看这些冲击都是在哪一些位置,试着去掉着一些冲激。
! r$ p( B1 [$ P X& }; B: I9 X3 o! |) t" N2 s+ m
for i = 1:80
0 B" H# x% o! q- `0 u1 ~! Z/ ]+ a$ }3 E) G& a8 [
Pf1(i*100 + 1) = Pf1(i*10);
/ J4 P- G8 s0 R: G
) o( {2 X0 ]. R5 j, O" ~9 S- _end
- x; q! q. b7 x- F( m1 I! P1 Q) i. W8 S& r" ?7 |$ q3 \
要生成别的码元表示只要稍微修改即可。 w6 u8 v7 R* ~
/ U8 m# z9 C1 {" X& {
最后参考代码是:(图的显示的时候要多运行几次,最后效果才出来)
8 O l4 E5 I7 ~ Z' n4 N( b
3 Q6 S: U; r4 m" c) |9 y% communication principle
4 V4 F5 r- m2 z; M% Lab 6 problem 1
: Z9 G0 E9 F5 Jfunction single_polar_code, B0 `+ k% V: g: M9 {
clear all;
" l. R% k" s, }$ O+ D/ M) Pformat long; e6 |( b$ f' R' |- [( F: g
Ts = 1; %码元周期
9 y. k% `: B/ X" ?$ DN_sample = 128; %每个码元抽样点数' B) f: |( A2 [3 ~) M8 U& @* B
dt = Ts/N_sample; %抽样的时间间隔: `4 ~9 q r& `
N = 100; %码元数
. `- {9 Q% Y7 B* o" p+ K* S2 At = 0: dt: (N*N_sample-1)*dt;
M# U/ r$ ~7 h8 ~& A% 基本码元 g(t) = 1
$ ~/ ^9 K! o3 V3 ?gt1 = ones(1,N_sample); %不归零
7 |/ i1 O) j l0 @& u! s; O3 }gt2 = [ones(1,N_sample/2),zeros(1,N_sample/2)]; %归零,占空比为0.5
- z* B4 |7 k. zgt3 = sinc(2*t(1:N_sample)/Ts); %sin(2*pi*t(1:N_sample)/Ts)/(2*pi*(1:N_sample)/Ts)3 \. K5 N7 c" Y5 S5 i
gt0 = zeros(1,N_sample);
+ Q, Z5 u0 ]( C7 g1 o; o- O" a( _4 d& m# U ]
%生成随机码元2 i: K) a, t- }( h1 _1 N X2 u
random_code = randi([0,1],1,N);0 ~* o( |) r0 t4 T/ P0 P+ p) z; g
/ I9 h8 g8 o- r2 q) t
%单极性波形的最后结果
H# X& I7 M. ]2 Z: @9 {8 p3 p: _yt1 = zeros(1,N*N_sample-1);
/ F: t# @/ X3 ?7 w! lyt2 = zeros(1,N*N_sample-1);" B0 n0 V9 v6 z
yt3 = zeros(1,N*N_sample-1);
* w5 W }/ j m- B: }% Jfor i = 1:N+ t/ E s/ I1 A4 F
if random_code(i) == 1 %得到波形图
2 Q3 k' x `7 M7 Y" X yt1((i-1)*N_sample+1:i*N_sample) = gt1; %单极性不归零NRZ波形
6 S3 O) f& ~- U, x7 |& o/ j yt2((i-1)*N_sample+1:i*N_sample) = gt2; %单极性归零RZ波形6 n2 v* _6 W- [- l: V; U
yt3((i-1)*N_sample+1:i*N_sample) = gt3; %双极性sinc波形/ j9 O" _3 P" d/ _$ z" V8 E
else
4 Q6 a; t4 y9 V) `% k+ B: C yt1((i-1)*N_sample+1:i*N_sample) = gt0; %没有这一行会经常报错
: B8 n2 I* B9 f# w6 R yt2((i-1)*N_sample+1:i*N_sample) = gt0;/ b9 D9 \% O# P1 B) G
yt3((i-1)*N_sample+1:i*N_sample) = (-1)*gt3;# c+ k' P6 O# n' o' P. R
end
: m% p& j8 V" D1 v, Lend# v' u2 S5 G, a- k8 E) d
; i( C+ M0 T# c( j6 E
%*********************************************************************
0 M4 F1 @. V* H6 C8 L6 z%求单极性不归零时域波形于波功率谱密度* `8 w) Q' @$ I' B
figure(1)
* V5 A$ a! Y/ d e$ Z) }) Fsubplot(2,1,1);
- E; w, T* E4 q$ Y2 iplot(t,yt1,'r');
) N9 s1 P% x% ~/ G, Z/ M6 I" v( Btitle('单极性不归零NRZ波形');8 J+ O( S, b( [: x. ~
xlabel('时间t/s');
# R9 u: g y3 B# Raxis([0,20,-0.5,1.5]); %画单极性不归零NRZ波形信号幅度频谱
S+ @* A/ I+ I5 {$ o+ k9 c' Rgrid;4 h1 ^! _$ ]) ?4 V8 v2 g
3 Z: h% M) A2 f
Ft1 = fft(yt1);: n7 m! G6 E+ j j3 k8 v( r
Ft1 = fftshift(Ft1);
3 x2 a0 x4 P' ?( h! rp = (Ft1.*conj(Ft1))/N; %计算功率谱密度
/ s5 v) z$ h3 w1 Q' o* ~ff1 = (-length(Ft1)/2:length(Ft1)/2-1)/10;
) Z$ k: y+ J, k/ O+ [: QPf1 = 10*log10(p);2 W: X7 c+ e) @8 w
for i = 1:805 S1 @7 `! _( ?* V- c* x# }! H
Pf1(i*100 + 1) = Pf1(i*10);% h! ]2 T; U" h" Y8 k# {6 D
end+ C" d+ o$ G" B; z5 _) K
subplot(2,1,2);
; v* x) i J* j4 `$ W2 Lplot(ff1,Pf1);- K; V# C/ W9 I ~
axis([-50,50,-50,50]); %画出单极性不归零NRZ波形功率谱密度
3 _. \9 Q4 S2 g6 U/ Bgrid;
9 C6 A* ~7 s! _! M- ~5 d4 r%*********************************************************************
9 Z; d+ z7 B! `: k' u( L& @4 Y; E _
%*********************************************************************
" H% D2 D9 x" f7 o0 h. F%求单极性归零时域波形与波功率谱密度" }7 |- m6 {, ?
figure(2)
" y: [0 L$ Z& z, l9 Qsubplot(2,1,1);/ J: w8 z7 A* @3 ~/ d) }( A
plot(t,yt2,'r');
5 ~8 Q- k3 D' F% d3 ktitle('单极性归零RZ波形');! J3 ~; B% S* f8 ~! B' [
xlabel('时间t/s');
4 Y" W5 K& k2 U, N6 t5 Eaxis([0,20,-0.5,1.5]); %画出单极性归零RZ波形功率谱密度
s; J( W4 h. H8 w) L" v' \grid;
' u2 T6 E# d7 } y" B- h6 ?! R
8 T3 @/ p. q1 H9 B: qFt2 = fft(yt2);) J4 z7 k' S6 q% \
Ft2 = fftshift(Ft2);% ~6 H5 q Q$ F
p2 = (Ft2.*conj(Ft2))/N; %计算功率谱密度 % A! f$ V" i7 y) c
ff2 = (-length(Ft2)/2:length(Ft2)/2-1)/10;+ j( c P9 ?2 {0 x
Pf2 = 10*log10(p2);
; f V) t$ f0 |7 W& j mfor i = 1:80
. ^$ Z" c" v8 ?- h3 p Pf2(i*100 + 1) = Pf1(i*10);
& ~. n0 H7 e1 @% t9 }2 u8 T: `end9 m6 ]; h' {7 L& E) m# x: D H: F
subplot(2,1,2);4 E" s; @1 x! O K
plot(ff2,Pf2);, o$ @1 k; {1 _
axis([-50,50,-50,50]); %画出单极性不归零NRZ波形功率谱密度! D# k$ X# [3 u4 n* K
grid;, b8 `4 `) G/ R% q8 D6 L& |% e
%*********************************************************************
) W4 c& Z% W, l' _' g8 j
" `5 R; i Y' q) U! ^+ u%*********************************************************************; R2 [* v; s, d9 Y& Z# z
%求双极性sinc波形时域波形与功率谱密度
0 m( e4 O3 N( W# l9 Gfigure(3)
( a! T8 [. t) e3 bsubplot(2,1,1);% T# K" Y! }* @! X
plot(t,yt3,'r');, q: f0 x) F4 d3 H+ E% }
title('双极性sinc波形');: C8 v, q, _. ~# g* a0 Y
xlabel('时间t/s');
* m6 g# v7 M$ q# ^/ R% maxis([0,20,-1.5,1.5]); %画出双极性sinc波形功率谱密度7 {/ g' |7 s& G, o+ x, r: u
grid;* E7 i3 t9 n( O; l2 y
8 y" ?1 f0 s% _) m- O- }3 F1 p% W
Ft3 = fft(yt3);
7 C) j7 E0 E1 P0 o0 i7 XFt3 = fftshift(Ft3);
9 G, {' ^7 h7 [9 N/ pp3 = (Ft3.*conj(Ft3))/20; %计算功率谱密度
) e. I0 j* u( s% ]ff3 = (-length(Ft3)/2:length(Ft3)/2-1)/10;2 u; K9 h5 @% ~8 d- s( X
Pf3 = 10*log10(p3);" w$ x! ]+ s" Y" v5 O% r) @7 [
subplot(2,1,2);
; F6 g8 L8 x: D+ G4 ?3 K9 k; Q$ iplot(ff3,Pf3(1:length(Ft3)));
% e/ r. C5 P* Q C2 D$ Paxis([-50,50,-50,60]); %画出单极性不归零NRZ波形功率谱密度* p5 w0 G1 U" I; n9 b
grid;
- z9 @) |& D H) G) F( ~( N. B%************************** |
|