|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
》这一题的重点就是首先把码元表示出来,这里我是使用了randi([0,1],1,N);
Y4 J7 z4 f2 I: R
2 o$ ~2 Q, I/ P# e+ E* n0 k, ]1 T9 ?随机生成了0或者1,生产了N个随机数。2 \$ F0 ~0 o* A. |! b* Q* k' H
2 d* C* X6 w! Q$ ^0 t+ ~
》接着表示基本码元,这里的是单极性不归零NRZ码元,所以gt1= ones(1,N_sample);%不归零。之后就应用基本码元函数来生成所需要的最后的序列。% l8 F: A* e3 U
' _6 V# R2 v2 Y) l! Z》再根据所生成的每一个码元把基本码元添加到里面。
2 h7 u: n* S3 l3 `% L% ~, P, Q5 p$ ]* u
yt1((i-1)*N_sample+1:i*N_sample) = gt1;
^% a- d: _4 ^0 z
) q- U; C3 ]9 n& K- l a! D9 b. l》最后利用快速傅里叶变换fft得到频谱,再用conj求出共轭这就相当于求了频谱模的平方。接着除以时间N就可以得到功率谱。
5 b6 f7 U! ~0 z7 T3 h9 `$ S6 e* y" E- x
》在生成的图我们会发现有许多的冲激,那么你就可以看看这些冲击都是在哪一些位置,试着去掉着一些冲激。
( A1 p% S3 v% g( Z1 e" w
" {5 t- m$ i" H0 z* O8 o f; Jfor i = 1:80
/ O0 B4 l0 o" G7 B* K; x/ L
0 [. `1 m* g% X. s Pf1(i*100 + 1) = Pf1(i*10);( w e) L a( _! U) x% [! ^! h
# u7 h7 T) e4 R3 M
end
! b& C1 t/ K, o7 \& ]: G* ]! k' v* y0 f6 |
要生成别的码元表示只要稍微修改即可。
( f1 K# |8 J, H# M* V; h" K/ g; M- @! k1 C2 I3 R, K
最后参考代码是:(图的显示的时候要多运行几次,最后效果才出来): F9 t5 q/ M! i) S" E( ~
6 x1 W5 x/ N/ \' R* ?2 K3 N8 k, `
% communication principle% M' S8 U. E) g! S+ U
% Lab 6 problem 1
# |2 [: s9 q1 x L' Qfunction single_polar_code; J5 u- C% a8 c7 _6 {& x
clear all;% ?% m- v% m" K) C* M8 \( U7 k5 u
format long;
5 e9 q$ s; _8 eTs = 1; %码元周期
% _( f4 O h6 {- RN_sample = 128; %每个码元抽样点数2 E* b7 X- M4 W+ T" o* O' |
dt = Ts/N_sample; %抽样的时间间隔: s$ G8 B. g# d
N = 100; %码元数
: ?4 o2 m& t3 A, E0 @t = 0: dt: (N*N_sample-1)*dt;
v4 l+ X& i- n% 基本码元 g(t) = 1
6 b% ^ ~9 D& O+ Lgt1 = ones(1,N_sample); %不归零
e. ?: C: L3 U" ~* V* Fgt2 = [ones(1,N_sample/2),zeros(1,N_sample/2)]; %归零,占空比为0.5
1 T" O0 S: @! fgt3 = sinc(2*t(1:N_sample)/Ts); %sin(2*pi*t(1:N_sample)/Ts)/(2*pi*(1:N_sample)/Ts)
3 F! V$ ~( q1 ^$ Z. k0 Hgt0 = zeros(1,N_sample);5 ]% J/ U4 `' P2 R3 t- v D
0 p5 ^" x8 x% x3 K5 h: e2 y* J1 r
%生成随机码元% ]8 m" D; B& d3 T" N7 u
random_code = randi([0,1],1,N);
: |2 U1 `; X) v2 ~! A
" ?/ a: \$ ~ ~9 a. ~% v8 ^%单极性波形的最后结果7 Z5 T4 J9 L6 j& q
yt1 = zeros(1,N*N_sample-1); , i- v: q4 M' ^. C
yt2 = zeros(1,N*N_sample-1);
( M: d% m7 `& s' k) Y/ I( vyt3 = zeros(1,N*N_sample-1);
& c" l2 L, ~' Z) Wfor i = 1:N
- s" S# ?" M, A1 f if random_code(i) == 1 %得到波形图6 `5 Y3 Z% Y" b/ `' [# r
yt1((i-1)*N_sample+1:i*N_sample) = gt1; %单极性不归零NRZ波形+ D4 G Z8 P, r3 e8 ^
yt2((i-1)*N_sample+1:i*N_sample) = gt2; %单极性归零RZ波形. F& h6 b y# j' U$ |& t. m
yt3((i-1)*N_sample+1:i*N_sample) = gt3; %双极性sinc波形
4 Z0 E- ?( [) f' X3 P u else
: f1 p; Y4 `6 ~# |6 g yt1((i-1)*N_sample+1:i*N_sample) = gt0; %没有这一行会经常报错) C% K. x7 E& `/ ?5 v/ T
yt2((i-1)*N_sample+1:i*N_sample) = gt0;
1 c+ W \+ z8 g" d0 M yt3((i-1)*N_sample+1:i*N_sample) = (-1)*gt3;2 H- V# Z2 L+ }: d) s; x* U
end( l" j# R! G3 Q# k# c% I( E
end* q0 ~* Z5 `4 @
! P/ Q' x% g9 Y9 @%*********************************************************************
4 e* `6 \+ j$ E%求单极性不归零时域波形于波功率谱密度7 u+ s) @. |# Y- n q2 p
figure(1)
( Z2 B- c0 E7 g& T! Esubplot(2,1,1);% |. H/ b8 Q; {
plot(t,yt1,'r');
: Z4 Q* t( A5 n6 F* j4 ytitle('单极性不归零NRZ波形');
; c, V1 @; S1 Q5 z# i# c4 q/ H2 Nxlabel('时间t/s');
" T) Z8 [1 `- t, x& ^axis([0,20,-0.5,1.5]); %画单极性不归零NRZ波形信号幅度频谱
! |' @2 K% u2 A& ?! v4 Ogrid;" Q1 V: i. h" ]/ h
1 s( ?* O* N+ M; q5 H+ FFt1 = fft(yt1);
. {& Y7 h# Y j) h$ I& W# O" j/ @4 @Ft1 = fftshift(Ft1);4 Q% o" q7 N8 [5 t( p2 R- J
p = (Ft1.*conj(Ft1))/N; %计算功率谱密度
& n" R$ W- Y eff1 = (-length(Ft1)/2:length(Ft1)/2-1)/10;$ u' N U& T5 [
Pf1 = 10*log10(p);: E6 B- j& v8 P; O
for i = 1:80# o! { B$ n) \' [& ~
Pf1(i*100 + 1) = Pf1(i*10);
% @) ~2 n- x! Q$ b* U# b% s" kend& _' P- @$ z" d
subplot(2,1,2);5 U9 H) ~" ^/ j
plot(ff1,Pf1);( j- E* a0 g, A# a% z$ ~
axis([-50,50,-50,50]); %画出单极性不归零NRZ波形功率谱密度
9 c# [+ B% i0 R, lgrid;9 U& q9 ^4 A @4 C; a
%*********************************************************************' U2 P( W; v( Y% a$ U
4 z* _; m. F% h+ s# g8 _0 f%*********************************************************************
/ r+ b" [* D6 r+ p5 _7 Z% E1 O; J%求单极性归零时域波形与波功率谱密度6 C3 k7 X7 L! A$ V; v
figure(2)* ^6 F3 K, [6 b, R
subplot(2,1,1);! m. \2 L9 M1 \# R% Z& s3 f
plot(t,yt2,'r');. a" V/ r! m l" H% d
title('单极性归零RZ波形');
$ c+ f; H" L" n, nxlabel('时间t/s');" N4 F+ E$ S8 B w
axis([0,20,-0.5,1.5]); %画出单极性归零RZ波形功率谱密度2 u/ j7 h% M; |! J5 i% G
grid;6 O% |0 K I" \7 }1 e) ]
7 d' Y3 y: x4 f9 ` V8 h9 JFt2 = fft(yt2);
9 `9 @1 {2 f3 r& }5 K* Z' z, tFt2 = fftshift(Ft2);* j+ [7 e" t7 i* T+ p Y
p2 = (Ft2.*conj(Ft2))/N; %计算功率谱密度
. p" c0 ~2 r8 y, t0 Sff2 = (-length(Ft2)/2:length(Ft2)/2-1)/10;" {9 g! h5 A- `7 @( E8 f
Pf2 = 10*log10(p2);
; S0 n; C; Q9 R, g) ]for i = 1:80
! Z3 o" n1 U& Z3 r" r Pf2(i*100 + 1) = Pf1(i*10);6 H+ r S, }. o" V# g3 _: Z6 n! v, k
end
3 F4 K# q! F& O; \6 W0 E0 h1 W% r. A3 Psubplot(2,1,2);1 b' ~8 ] a& d% s4 |; \: Y
plot(ff2,Pf2);
) i9 h% [6 [7 Y) r. o( daxis([-50,50,-50,50]); %画出单极性不归零NRZ波形功率谱密度) n$ R% @6 q! M
grid;
5 ?9 A2 M' v( g( T%*********************************************************************
5 r1 e% R6 V* Q# O7 K5 m* t
G& _' y' T* J- r/ K8 L: s. g%*********************************************************************
1 v) [; M7 y$ {% A0 z%求双极性sinc波形时域波形与功率谱密度
$ P0 z- u* T$ j0 {" R7 efigure(3)! b, a3 v' X6 N: M8 m6 ?; H0 {
subplot(2,1,1);7 C' ?% h) x; D4 ^! ^2 `8 H$ e
plot(t,yt3,'r');
9 C5 d, t/ s0 etitle('双极性sinc波形');0 O( n& f5 o+ N7 {( Z5 r1 L
xlabel('时间t/s');
7 w# M2 u# n) X% B% xaxis([0,20,-1.5,1.5]); %画出双极性sinc波形功率谱密度; u" p( I* A+ b6 D# W
grid;6 m3 e! Z% j% N' J6 l! o+ [
6 @8 M; k5 c$ t, w# l, x" V
Ft3 = fft(yt3);' q& f8 X' m& K) }
Ft3 = fftshift(Ft3);$ H1 O" s/ c G
p3 = (Ft3.*conj(Ft3))/20; %计算功率谱密度
, d! ?7 O6 y) O& n+ Dff3 = (-length(Ft3)/2:length(Ft3)/2-1)/10;
$ N# ?! g- g! l! s& NPf3 = 10*log10(p3);- B$ m9 w! I' O/ S
subplot(2,1,2);
4 \; d# G4 ?' q! r$ O( hplot(ff3,Pf3(1:length(Ft3)));4 H& _+ a3 H5 A: B1 z
axis([-50,50,-50,60]); %画出单极性不归零NRZ波形功率谱密度
' f$ S& n2 V( d. r7 p8 Egrid;
- s% p D6 |/ t7 [9 Y7 m5 ]3 C5 t%************************** |
|