码元速率 matlab,[转载]基于小波变换的移相键控信号符号速率估计(matlab仿真)...

西安电子科技大学 西电大宝

在电子技术迅猛发展的当代社会,空间中充满了各种各样不同频率、不同调制类型的通信信号。正

常通信条件下,发送方和接受方进行的是合作通信,即接受方预先知道发送信号的频率、调制类型、码

元速率等参数,这样,接受方可以完全解调发送信号,从而无损失地获得传送的信息。然而,在某些场合,我们需要接收机能够在没有先验知识的情况下进行解调工作。这些场合包括:电子侦察、电子战、空间威胁分析以及民用的灵巧收音机(即可以自动调台的收音机)等。显然,这些场合属于非合作通信,发送方并不希望接受方能够正确地解调发送信号,接受方也无法预先完全得知信号的各种调制参数。调制识别的任务就是在未知调制信息内容的前提下,确定信号的调制类型,然后估计载波频率、载波相位、码元速率等各种调制参数。码元速率估计在调制识别中是非常重要的一个环节,首先,码元速率估计不正确将导致调制识别不正确,将信号进行不正确的解调会部分或者全部破坏信号携带的信息;其次,如果知道了正确的码元速率,就可以确定正确的调制类型,从而进一步选择合适的干扰波形。在传统调制识别过程中,需要预先掌握一些调制参数,比如,载波频率、载波相位等等。这样,在估计这些参数过程中的误差会被引入到码元速率估计中,从而影响码元速率估计的精度。为了提高精度,我们必须寻找一种直接估计码元速率的新方法。通信信

号是一种典型的非平稳信号,分析非平稳信号一般采用而时频信号分析。进一步分析各种调制信号我们发现,码元变化会导致调制信号中有瞬时突变信号出现,而时频信号分析中

的小波分析正是分析瞬时突变信号的有效工具。

移相键控(phase shift

keying, PSK)调制方式在通信系统中获得了广泛的应用。在电子侦察与对抗中, 对数字调制信号M元的识别和符号速率的估计是通信对抗的重要问题。如何在低信噪比的条件下实现PSK信号符号速率的精确估计和有效地区分信号的M元已成为研究的热点。各种现代信号处理技术, 包括人工神经网络、小波理论、谱相关理论、支撑向量机(SVM ) 等数学方法已被应用到此项研究中。PSK信号属于一种循环平稳信号, 其相位中存在着瞬变,

而小波变换(WT)非常适于提取相位跃变的瞬态变化信息。数字通信中多采用PSK调制方式, 该信号经过一定变换后,

相位变化可反映为小波变换后不同峰值幅度的变化, 经一定处理后便可利用PSK信号小波变换的自相关精确地估计出符号速率。这种方法的最大优点是无需任何载频或信噪比的先验知识。

一.

解决问题

研究基于小波变换有效提取信号瞬变特性的功能, 对数字调制移相键控(PSK)信号进行码元速率估计。通过对信号作多尺度下的小波变换, 提取PSK信号码元间的相位瞬变信息。然后通过对小波变换幅值求自相关运算及其他处理, 实现对PSK信号符号速率的准确估计。该方法的优点是无需任何PSK信号的先验知识, 在低信噪比下仍能准确估计。对QPSK信号在Matlab环境下的仿真结果表明,信噪比≥9 dB时能准确估计其码元速率。

二.

理论分析

2.1 移相键控(phase shift keying,

PSK)调制方式

一般调制信号的改变部份可分为幅度A(用)、相位θ(用)及频率fo(用)三种。移相键控是一种利用相位差异的信号来传送信息的调制方式。

MPSK通用的传输符号之公式:

a4c26d1e5885305701be709a3d33442f.png

其调制的码元为x=[0 2 3 0

1],每隔一个码元周期,如果前后两个码元不一样,调制信号会有一个不连续的变化。下面就是根据这一点,利用小波分析来检测出这些不连续变化的点,从而得到码元周期。

2.2 小波

小波分析方法在上篇已经做过简要介绍,这里略去。

本文中采用db5小波对4psk调制信号进行分析。Db5小波是dbN(N是小波的阶数)小波的一种,除了N=1外,dbN不具有对称性,没有明确的表达式。其母小波图形见上一篇博文中图3。

2.3 码元速率估计的实现

从上面分析当中,我们知道在MPSK信号的小波变换信号幅度信号中有很多峰值,而且这些峰值恰好出现在相位突变之处。这些峰值之间的间隔是码元周期的整数倍,如果峰值足够多的话,最小的峰值间隔就是码元周期。这样码元速率估计问题就转换为周期估计问题(或者频率估计,尽管实际信号不在频域,但是方法非常类似)。周期估计有很多成熟的方法可以利用,比如:过零点估计方法,信号自相关法,周期图法等等。需要指出的是,用这种方法进行码元速率估计是不需要先验知识的,例如中频,调制类型等等调制参数,当然,我们也不需要对信号进行解调。这种方法可以避免在估计其它参数或者解调时引入误差,从而获得比较高的估计精度。

这里采用信号自相关法进行周期估计。调制信号在相位突变的时候,小波变换高频系数重构的信号幅值在码元跳变处会频率明显的增大,因而会形成图5的信号。

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

三.matlab仿真

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

选取D1频率段的小波系数做自相关,D1段是高频段。下图是小波分解出的高频信号,通过对小波系数自相关后得到的结果,对其设定门限

即可得到信号峰值,这里采用的是先程序先搜出自相关信号中心的最大值对应的时间点t,然后向左右两边搜寻出下一个峰值时间点t1,t2。则码元周期T=(t2-t1)/2,码元速率Rs=1/T。图10是信噪比10db的QPSK的高频小波系数自相关绝对值,检测出最大值在第6400个采样点处,旁边两峰分别是在6201和6599处,采样频率fs=200kHz,所以码元速率Rs=1000字符/s。

a4c26d1e5885305701be709a3d33442f.png

仿真发现,

在信噪比为20, 15, 10

dB时,码元速率估计结果均为1000 字符/s 范围内,误差在1%以内。可见在仿真条件下能得到比较准确估计。但当信噪比小于9 dB 时此方法失效,噪声过大导致自相关后的峰值不明显,检测出错的几率很大。

四.总结

运用小波变换后再求其自相关的方法对运用小波变换后再求其自相关的方法对PSK 的字符速率进行估计, 在信噪比≥9 dB

时的仿真该方法有较好的估计效果。文中的方法要很好地解决实用问题,还需要进一步的工作:对PSK混合调制信号的符号速率估计。

五.仿真程序:

主m文件

M=4;%ºÍµ÷ÖÆÔªÊýMÓйأ¬2*pi/MԽСԽÄÑÓëÔëÉùÇø·Ö¡£Ôز¨±ä»¯£¬Ð¡²¨³ß¶ÈÓ¦±ä»¯£¬

%Ñ°ÕÒ×îºÃµÄС²¨·Ö½â²ãÊýN£¬»¹ÓÐÈ¥ÔëÃÅÏÞ£¬×ÔÏà¹Ø²î·Öƽ·½Ð§¹û½ÏºÃ

j=32;%ÂëÔª¸öÊý

x=[0 2 1 3 0 2 0 1 3 2 0 1 1 3 1 0 0 2 0 1 3 2 0 1

3 0 2 0 1 3 2 0];%%randint(1,j);

fc=10000;

fd=1000;

fs=200000;

[sn,t]=dmod(x,fc,fd,fs,'psk',M);

s=awgn(sn,7,'measured','db');%¼ÓÔëÉù

t=1/fs:1/fs:j/fd;

N=7;%С²¨·Ö½â²ãÊý

ls=length(s);

[c,l]=wavedec(s,N,'db5');

figure(1);

subplot(N+2,1,1);plot(t,s);

aN=wrcoef('a',c,l,'db5',N);

subplot(N+2,1,2);plot(aN);

for i=1:ls

if abs(c(i))<0.64

c(i)=0;

end

end

for i=1:N

di=wrcoef('d',c,l,'db5',N+1-i);

subplot(N+2,1,2+i);plot(di);

end

r = xcorr(di);

ls1=length(r);

% d(ls1-1)=0;

% for i=1:ls1-1

%

d(i)=r(i+1)-r(i);

% end

R=1;

figure(2);

%

subplot(R,1,1);plot(r);xlabel('¸ßƵС²¨ÏµÊý×ÔÏà¹Ø');

subplot(R,1,1);plot(abs(r));xlabel('¸ßƵС²¨ÏµÊý×ÔÏà¹Ø¾ø¶ÔÖµ');

for i=1:ls1-1

if(r(i)==max(r))

mr=i

end

end

i=mr-5;

while(abs(r(i))<2.7)

i=i-1;

end

Rs1=i

i=mr+5;

while(abs(r(i))<2.7)

i=i+1;

end

Rs2=i

Rs=(Rs2-Rs1)/2

由于涉及大很多公式,很不方便录入到博客里,所以我直接截图进来。我也找了新浪博客和office相关的发博文软件,我搞了半天也没搞会。最终还是直接发图片了,有谁搞懂怎么把新浪博客和office结合起来,一定请告诉我下,谢谢了先!!!!!

本人郑重声明:此博客文章电子制作文章禁止转载,请尊重个人劳动成果。

西电大宝

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的MATLAB程序,演示如何使用2ASK调制的直接扩频通信系统进行仿真。其中,使用单极性不归零序列和m序列作为扩频码和调制码。代码中的参数可以根据具体需求进行调整。 ```matlab % 扩频码(单极性不归零序列) pcode = [1 0 1 1 1 0 1 1]; % 调制码(m序列) mseq = comm.PNSequence('Polynomial',[5 2 0],'SamplesPerFrame',15); % 载波频率和码元速率 fc = 1e4; % 载波频率 Rs = 103; % 码元速率(单极性不归零序列) Rm = 1e4; % 码元速率(m序列) % 信号长度 len = 1024; % 生成随机数字序列 data = randi([0 1], 1, len); % 将数字序列转换为2ASK调制信号 modulated = 2*data-1; % 扩频 spreaded = repmat(modulated, length(pcode), 1) .* ... repmat(pcode', 1, length(modulated)); % 调制(用m序列进行调制) mseq_data = mseq()'; modulated_spreaded = mseq_data .* spreaded(:)'; % 产生载波 t = 0:1/Rs:len/Rs-1/Rs; carrier = cos(2*pi*fc*t); % 调制(用载波进行调制) modulated_carrier = modulated_spreaded .* carrier; % 绘制时域波形 figure; subplot(211); plot(t, modulated_carrier); xlabel('Time (s)'); ylabel('Amplitude'); title('Modulated Signal (Time Domain)'); % 绘制频域波形 subplot(212); freq = linspace(-Rs/2, Rs/2, length(t)); spectrum = fftshift(fft(modulated_carrier)); plot(freq, abs(spectrum)); xlabel('Frequency (Hz)'); ylabel('Amplitude'); title('Modulated Signal (Frequency Domain)'); ``` 以上代码生成一个随机数字序列,将其转换为2ASK调制信号,并使用单极性不归零序列进行扩频,m序列进行调制。然后,通过产生载波进行调制,并绘制时域波形和频域波形。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值