声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2523|回复: 5

[综合讨论] 小波变换和神经网络用于调制识别的问题!

[复制链接]
发表于 2006-9-13 17:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
大家好,如题所示我是用小波变换和神经网络做数字信号调制识别的。有没有做这方面的朋友,大家一起讨论讨论。涉及中值滤波和特征提取的编程有点问题,如有人熟悉请不吝赐教。在此先谢谢了!
回复
分享到:

使用道具 举报

发表于 2006-9-14 17:55 | 显示全部楼层
一个调制识别程序

  1. clear;
  2. close all;
  3. echo on;
  4. %在调制采样信号上加载噪声
  5. M=2;   %进行M元调制,M定为2
  6. Fc=150000; %载波频率定为150kHz
  7. Fd=50000; %解调后数字信号速率为50kHz
  8. Fs=1200000;%模拟信号采样速率设定为1200kHz
  9. pause;
  10. jidai=randint(1,30000),%用randint(m,n)函数产生随机消息序列,作为基带信号
  11. pause
  12. [pskzerodb,t]=dmod(jidai,Fc,Fd,[Fs,0],'psk',M); %用PSK方式调制无噪声,频率之差为60kHz
  13. %axis([0 0.5 0 2]);
  14. subplot(4,1,1);
  15. plot(t,pskzerodb);
  16. title('2PSK调制波形');xlabel('时间t');ylabel('幅度');
  17. pause
  18. psktendb=awgn(pskzerodb,10);%PSK SNR=10db
  19. subplot(4,1,2);plot(t,psktendb);
  20. title('2PSK调制波形,SNR=10dB');xlabel('时间t');ylabel('幅度');
  21. pause
  22. psktendb=awgn(pskzerodb,5);%PSK SNR=5db
  23. subplot(4,1,3);plot(t,psktendb);
  24. title('2PSK调制波形,SNR=5dB');xlabel('时间t');ylabel('幅度');
  25. pause
  26. psktwentydb=awgn(pskzerodb,20);%PSK SNR=20db
  27. subplot(4,1,4);plot(t,psktwentydb);
  28. title('2PSK调制波形,SNR=20dB');xlabel('时间t');ylabel('幅度');
  29. save pskdata0 pskzerodb;
  30. save pskdata10 psktendb;
  31. save pskdata20 psktwentydb;
  32. pause
  33. ns=length(pskzerodb),
  34. %每组样点个数*样本数=样点总数   每组样点数与样本数必须为整数
  35. N=input('每组样点个数N=')
  36. M=ns/N;
  37. pskdata=reshape(pskzerodb,N,M);
  38. for j=1:M
  39.     data=(pskdata(:,j))';
  40.     %求信号序列的希尔伯特变换
  41.     hpsk=hilbert(data);%求信号序列的希尔伯特变换
  42.     %求瞬时幅度
  43.     a_amplitude=abs(hpsk);%瞬时幅度
  44.     phi_phase=angle(hpsk);
  45.     %求相位修正值
  46.     c_k(1)=0;%修正相位初始值
  47.     for i=2:N
  48.         if phi_phase(i)-phi_phase(i-1)>pi
  49.             c_k(i)=c_k(i-1)-2*pi;
  50.         elseif phi_phase(i)-phi_phase(i-1)<-pi
  51.             c_k(i)=c_k(i-1)+2*pi;
  52.         else c_k(i)=c_k(i-1);
  53.         end
  54.     end
  55.     c_k;
  56.     %去卷叠相位
  57.     phi_uw_phase=phi_phase+c_k;%去卷叠相位
  58.     %去相位线性分量后真正的瞬时相位
  59.     phi_NL_phase=phi_uw_phase-2*pi*(1:N)*Fc/Fs;%去相位线性分量后真正的瞬时相位
  60.     %求瞬时频率
  61.     f_frequency=Fs/(2*pi)*diff(phi_NL_phase);%瞬时频率
  62.     %求gamma_max归一化瞬时幅度的最大值
  63.     m_a=mean(a_amplitude);%求瞬时幅度的平均值
  64.     a_n=a_amplitude/m_a;
  65.     a_cn=a_n-1;%求归一化中心瞬时幅度
  66.     gamma_max=max((abs(fft(a_cn))).^2)/N;%求gamma_max归一化瞬时幅度的最大值
  67.     gamma_max_data(j)=gamma_max;%存储gamma_max
  68.     %求sigma_ap瞬时相位的中心非线性分量的绝对值的标准偏差
  69.     feiweiruoquduan_phi_NL_phase=phi_NL_phase(find(a_n>1));%求非微弱区段即满足an>aopt=1(最佳归一化幅度门限值)对应的瞬时相位值
  70.     sigma_ap=sqrt(mean(feiweiruoquduan_phi_NL_phase.^2)-(mean(abs(feiweiruoquduan_phi_NL_phase)))^2);%求sigma_ap瞬时相位的中心非线性分量的绝对值的标准偏差
  71.     sigma_ap_data(j)=sigma_ap;%存储sigma_ap
  72.     %求sigma_dp瞬时相位直接值的中心非线性分量的标准偏差
  73.     sigma_dp=sqrt(mean(feiweiruoquduan_phi_NL_phase.^2)-(mean(feiweiruoquduan_phi_NL_phase))^2);%求sigma_dp瞬时相位直接值的中心非线性分量的标准偏差
  74.     sigma_dp_data(j)=sigma_dp;%存储sigma_dp
  75.     %求sigma_aa归一化中心瞬时幅度绝对值的标准偏差
  76.     sigma_aa=sqrt(mean(a_cn.^2)-(mean(abs(a_cn)))^2);%求sigma_aa归一化中心瞬时幅度绝对值的标准偏差
  77.     sigma_aa_data(j)=sigma_aa;%存储sigma_aa
  78.     %求sigma_af归一化中心瞬时频率的绝对值的标准偏差
  79.     m_f=mean(f_frequency);%求瞬时频率的平均值
  80.     f_m=f_frequency-m_f;
  81.     f_N=f_m/Fd;
  82.     sigma_af=sqrt(mean(f_N.^2)-(mean(abs(f_N)))^2);%求sigma_af归一化中心瞬时频率的绝对值的标准偏差
  83.     sigma_af_data(j)=sigma_af;%存储sigma_af
  84. end
  85. gamma_max_data;
  86. sigma_ap_data;
  87. sigma_dp_data;
  88. sigma_aa_data;
  89. sigma_af_data;
  90. save psk2_0_skfdata gamma_max_data sigma_ap_data sigma_dp_data sigma_aa_data sigma_af_data
  91. max=mean(gamma_max_data);
  92. ap=mean(sigma_ap_data);
  93. dp=mean(sigma_dp_data);
  94. aa=mean(sigma_aa_data);
  95. af=mean(sigma_af_data);
  96. save psk2_0_skfmean max ap dp aa af
  97. psk2_0=[gamma_max_data;sigma_ap_data;sigma_dp_data;sigma_aa_data;sigma_af_data];%将特征参数整合成网络输入矩阵
  98. save psk2_0_ANN_input psk2_0;
  99. clear
  100. close all
  101. load pskdata10
  102. ns=length(psktendb),
  103. N=1200
  104. M=ns/N;
  105. pskdata=reshape(psktendb,N,M);
  106. for j=1:M
  107.     data=(pskdata(:,j))';
  108.     %求信号序列的希尔伯特变换
  109.     hpsk=hilbert(data);%求信号序列的希尔伯特变换
  110.     %求瞬时幅度
  111.     a_amplitude=abs(hpsk);%瞬时幅度
  112.     phi_phase=angle(hpsk);
  113.     %求相位修正值
  114.     c_k(1)=0;%修正相位初始值
  115.     for i=2:N
  116.         if phi_phase(i)-phi_phase(i-1)>pi
  117.             c_k(i)=c_k(i-1)-2*pi;
  118.         elseif phi_phase(i)-phi_phase(i-1)<-pi
  119.             c_k(i)=c_k(i-1)+2*pi;
  120.         else c_k(i)=c_k(i-1);
  121.         end
  122.     end
  123.     c_k;
  124.     %去卷叠相位
  125.     phi_uw_phase=phi_phase+c_k;%去卷叠相位
  126.     %去相位线性分量后真正的瞬时相位
  127.     phi_NL_phase=phi_uw_phase-2*pi*(1:N)*Fc/Fs;%去相位线性分量后真正的瞬时相位
  128.     %求瞬时频率
  129.     f_frequency=Fs/(2*pi)*diff(phi_NL_phase);%瞬时频率
  130.     %求gamma_max归一化瞬时幅度的最大值
  131.     m_a=mean(a_amplitude);%求瞬时幅度的平均值
  132.     a_n=a_amplitude/m_a;
  133.     a_cn=a_n-1;%求归一化中心瞬时幅度
  134.     gamma_max=max((abs(fft(a_cn))).^2)/N;%求gamma_max归一化瞬时幅度的最大值
  135.     gamma_max_data(j)=gamma_max;%存储gamma_max
  136.     %求sigma_ap瞬时相位的中心非线性分量的绝对值的标准偏差
  137.     feiweiruoquduan_phi_NL_phase=phi_NL_phase(find(a_n>1));%求非微弱区段即满足an>aopt=1(最佳归一化幅度门限值)对应的瞬时相位值
  138.     sigma_ap=sqrt(mean(feiweiruoquduan_phi_NL_phase.^2)-(mean(abs(feiweiruoquduan_phi_NL_phase)))^2);%求sigma_ap瞬时相位的中心非线性分量的绝对值的标准偏差
  139.     sigma_ap_data(j)=sigma_ap;%存储sigma_ap
  140.     %求sigma_dp瞬时相位直接值的中心非线性分量的标准偏差
  141.     sigma_dp=sqrt(mean(feiweiruoquduan_phi_NL_phase.^2)-(mean(feiweiruoquduan_phi_NL_phase))^2);%求sigma_dp瞬时相位直接值的中心非线性分量的标准偏差
  142.     sigma_dp_data(j)=sigma_dp;%存储sigma_dp
  143.     %求sigma_aa归一化中心瞬时幅度绝对值的标准偏差
  144.     sigma_aa=sqrt(mean(a_cn.^2)-(mean(abs(a_cn)))^2);%求sigma_aa归一化中心瞬时幅度绝对值的标准偏差
  145.     sigma_aa_data(j)=sigma_aa;%存储sigma_aa
  146.     %求sigma_af归一化中心瞬时频率的绝对值的标准偏差
  147.     m_f=mean(f_frequency);%求瞬时频率的平均值
  148.     f_m=f_frequency-m_f;
  149.     f_N=f_m/Fd;
  150.     sigma_af=sqrt(mean(f_N.^2)-(mean(abs(f_N)))^2);%求sigma_af归一化中心瞬时频率的绝对值的标准偏差
  151.     sigma_af_data(j)=sigma_af;%存储sigma_af
  152. end
  153. gamma_max_data;
  154. sigma_ap_data;
  155. sigma_dp_data;
  156. sigma_aa_data;
  157. sigma_af_data;
  158. save psk2_10_skfdata gamma_max_data sigma_ap_data sigma_dp_data sigma_aa_data sigma_af_data
  159. max=mean(gamma_max_data);
  160. ap=mean(sigma_ap_data);
  161. dp=mean(sigma_dp_data);
  162. aa=mean(sigma_aa_data);
  163. af=mean(sigma_af_data);
  164. save psk2_10_skfmean max ap dp aa af
  165. psk2_10=[gamma_max_data;sigma_ap_data;sigma_dp_data;sigma_aa_data;sigma_af_data];%将特征参数整合成网络输入矩阵
  166. save psk2_10_ANN_input psk2_10;
  167. clear
  168. close all
  169. load pskdata20
  170. ns=length(psktwentydb),
  171. N=1200
  172. M=ns/N;
  173. pskdata=reshape(psktwentydb,N,M);
  174. for j=1:M
  175.     data=(pskdata(:,j))';
  176.     %求信号序列的希尔伯特变换
  177.     hpsk=hilbert(data);%求信号序列的希尔伯特变换
  178.     %求瞬时幅度
  179.     a_amplitude=abs(hpsk);%瞬时幅度
  180.     phi_phase=angle(hpsk);
  181.     %求相位修正值
  182.     c_k(1)=0;%修正相位初始值
  183.     for i=2:N
  184.         if phi_phase(i)-phi_phase(i-1)>pi
  185.             c_k(i)=c_k(i-1)-2*pi;
  186.         elseif phi_phase(i)-phi_phase(i-1)<-pi
  187.             c_k(i)=c_k(i-1)+2*pi;
  188.         else c_k(i)=c_k(i-1);
  189.         end
  190.     end
  191.     c_k;
  192.     %去卷叠相位
  193.     phi_uw_phase=phi_phase+c_k;%去卷叠相位
  194.     %去相位线性分量后真正的瞬时相位
  195.     phi_NL_phase=phi_uw_phase-2*pi*(1:N)*Fc/Fs;%去相位线性分量后真正的瞬时相位
  196.     %求瞬时频率
  197.     f_frequency=Fs/(2*pi)*diff(phi_NL_phase);%瞬时频率
  198.     %求gamma_max归一化瞬时幅度的最大值
  199.     m_a=mean(a_amplitude);%求瞬时幅度的平均值
  200.     a_n=a_amplitude/m_a;
  201.     a_cn=a_n-1;%求归一化中心瞬时幅度
  202.     gamma_max=max((abs(fft(a_cn))).^2)/N;%求gamma_max归一化瞬时幅度的最大值
  203.     gamma_max_data(j)=gamma_max;%存储gamma_max
  204.     %求sigma_ap瞬时相位的中心非线性分量的绝对值的标准偏差
  205.     feiweiruoquduan_phi_NL_phase=phi_NL_phase(find(a_n>1));%求非微弱区段即满足an>aopt=1(最佳归一化幅度门限值)对应的瞬时相位值
  206.     sigma_ap=sqrt(mean(feiweiruoquduan_phi_NL_phase.^2)-(mean(abs(feiweiruoquduan_phi_NL_phase)))^2);%求sigma_ap瞬时相位的中心非线性分量的绝对值的标准偏差
  207.     sigma_ap_data(j)=sigma_ap;%存储sigma_ap
  208.     %求sigma_dp瞬时相位直接值的中心非线性分量的标准偏差
  209.     sigma_dp=sqrt(mean(feiweiruoquduan_phi_NL_phase.^2)-(mean(feiweiruoquduan_phi_NL_phase))^2);%求sigma_dp瞬时相位直接值的中心非线性分量的标准偏差
  210.     sigma_dp_data(j)=sigma_dp;%存储sigma_dp
  211.     %求sigma_aa归一化中心瞬时幅度绝对值的标准偏差
  212.     sigma_aa=sqrt(mean(a_cn.^2)-(mean(abs(a_cn)))^2);%求sigma_aa归一化中心瞬时幅度绝对值的标准偏差
  213.     sigma_aa_data(j)=sigma_aa;%存储sigma_aa
  214.     %求sigma_af归一化中心瞬时频率的绝对值的标准偏差
  215.     m_f=mean(f_frequency);%求瞬时频率的平均值
  216.     f_m=f_frequency-m_f;
  217.     f_N=f_m/Fd;
  218.     sigma_af=sqrt(mean(f_N.^2)-(mean(abs(f_N)))^2);%求sigma_af归一化中心瞬时频率的绝对值的标准偏差
  219.     sigma_af_data(j)=sigma_af;%存储sigma_af
  220. end
  221. gamma_max_data;
  222. sigma_ap_data;
  223. sigma_dp_data;
  224. sigma_aa_data;
  225. sigma_af_data;
  226. save psk2_20_skfdata gamma_max_data sigma_ap_data sigma_dp_data sigma_aa_data sigma_af_data
  227. max=mean(gamma_max_data);
  228. ap=mean(sigma_ap_data);
  229. dp=mean(sigma_dp_data);
  230. aa=mean(sigma_aa_data);
  231. af=mean(sigma_af_data);
  232. save psk2_20_skfmean max ap dp aa af
  233. psk2_20=[gamma_max_data;sigma_ap_data;sigma_dp_data;sigma_aa_data;sigma_af_data];%将特征参数整合成网络输入矩阵
  234. save psk2_20_ANN_input psk2_20;
复制代码

评分

1

查看全部评分

发表于 2007-3-5 10:35 | 显示全部楼层
我使用dmod 函数
怎么老是报错  说jidai  is outside range
是怎么回事呀
发表于 2007-3-5 17:51 | 显示全部楼层

回复 #2 happy 的帖子

happy兄,你真是高手啊
怎么和你单独交谈啊
你有QQ能不能够告诉一下兄弟啊
呵呵,仰望高手
没有办法啊:hug: :lol :lol :victory:
发表于 2007-3-5 23:58 | 显示全部楼层
原帖由 liuguo93 于 2007-3-5 17:51 发表
happy兄,你真是高手啊
怎么和你单独交谈啊
你有QQ能不能够告诉一下兄弟啊
呵呵,仰望高手
没有办法啊:hug: :lol :lol :victory:



你看看happy的签名档吧
发表于 2007-7-10 16:43 | 显示全部楼层

请教2psk相位问题

谢谢happy兄的程序啊,对我很有帮助。
只是这个程序得到的2psk的去卷叠去线性分量后的相位是随着采样点数不断增大的,我想得到很多论文中说2psk的0,pi相位,也就是下图所示的这种: 2pskxiangwei.JPG
上图也是经过去卷叠去线性分量后的相位,请大家指教指教啊!怎么得到0和pi的啊?
happy兄最近不能上网啊,好遗憾。请大家赐教啊!谢谢了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-12 09:58 , Processed in 0.083922 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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