找回密码
 注册
关于网站域名变更的通知
查看: 719|回复: 1
打印 上一主题 下一主题

Matlab之求随机生成数字信号单极性不归零码的时域图并求功率谱

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-11-16 16:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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%**************************
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-11-16 17:30 | 只看该作者
    Matlab之求随机生成数字信号单极性不归零码的时域图并求功率谱
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 18:22 , Processed in 0.187500 second(s), 24 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表