在求解信噪比时,加30db的高斯白噪声后所求得的信噪比不是30。而且理论上软阈值去噪效果应该是最好的,但是软阈值去噪后得到的信噪比却比其他方法要小,而且所有求得的信噪比数值都很小。我也在论坛里看到过类似的情况,但是自己还是没能解决,希望得到给位的指点教导,非常感谢!

clear all; clc; close all;

fs=8000;                  %语音信号采样频率为8000

xx=wavread('lw.wav');

x1=xx(:,1);%取单声道

t=(0:length(x1)-1)/8000;

y1=fft(x1,2048);

f=fs*(0:1023)/2048;

figure(1)

plot(t,x1)                   %做原始语音信号的时域图形

figure(2)

plot(f,abs(y1(1:1024)))       %做原始语音信号的FFT频谱图

y=awgn(x1',30);   %加30db的高斯白噪声

snr=SNR_singlech(x1,y')%求得信噪比

figure(3)

plot(t,y)                   %做加噪语音信号的时域图形

[c,l]=wavedec(y,3,'db1');%多尺度一维分解

%用db1小波对信号进行3层分解并提取系数

a3=appcoef(c,l,'db1',3);

%a2=appcoef(c,l,'db1',2);

%a1=appcoef(c,l,'db1',1);

d3=detcoef(c,l,3);

d2=detcoef(c,l,2);

d1=detcoef(c,l,1);

%对信号进行强制去噪

dd3=zeros(1,length(d3));

dd2=zeros(1,length(d2));

dd1=zeros(1,length(d1));

c1=[a3 dd3 dd2 dd1];

y3=waverec(c1,l,'db1');%多尺度小波变换重构

snr=SNR_singlech(x1,y3')%求得信噪比 均方误差

figure(4);

plot(t,y3);

title('强制消噪后语音信号');

%默认阀值去噪

[thr,sorh,keepapp]=ddencmp('cmp','wp',y);

y4=wdencmp('gbl',c,l,'db1',3,thr,sorh,keepapp);

snr=SNR_singlech(x1,y4')%求得信噪比

figure(5);

plot(t,y4);

title('默认阈值消噪后信号');

%软阀值去噪

thr1=thselect(d1,'rigrsure');%阈值获取,使用Stein的无偏风险估计原理

thr2=thselect(d2,'rigrsure');

thr3=thselect(d3,'rigrsure');

sd1=wthresh(d1,'s',thr1);

sd2=wthresh(d1,'s',thr2);

sd3=wthresh(d1,'s',thr3);

c2=[a3 sd3 sd2 sd1];

y5=waverec(c2,l,'db1');%多尺度重构

snr=SNR_singlech(x1,y5')%求得信噪比

figure(6);

plot(t,y5);

title('给定阈值(软)消噪后语音信号');

%进行硬阈值处理

hd1=wthresh(d1,'h',thr1);

hd2=wthresh(d2,'h',thr2);

hd3=wthresh(d3,'h',thr3);

c3=[a3 hd3 hd2 hd1];

y6=waverec(c3,l,'db1');

snr=SNR_singlech(x1,y6')%求得信噪比

figure(7);

plot(t,y6);

title('给定阈值(硬)消噪后语音信号');

另:

function snr=SNR_singlech(I,In)

% 计算信噪比函数

% I :原始信号

% In:染噪信号

snr=0;

Ps=sum(sum((I-mean(mean(I))).^2));%signal power

Pn=sum(sum((I-In).^2));           %noise power

snr=10*log10(Ps/Pn);

2013-5-14 17:12 上传

点击文件名下载附件

391.91 KB, 下载次数: 3649

lw.wav

信噪比与错误指数matlab,关于信噪比不符合理论值的问题相关推荐

  1. 【高阶累积量】基于高阶累积量的信噪比盲估计法的matlab仿真

    1.软件版本 matlab2013b 2.系统描述 所谓高阶统计量,通常是指信号的高阶矩,高阶累积量等信号统计信息的统称.在这些高阶统计量中,高阶累积量具有十分重要的重用,不同阶数的累积量可以反映出信 ...

  2. matlab saveas使用报错:错误使用 matlab.graphics.internal.name (line 101)

    clear addpath('D:\matlab program'); Im = imread('lena512color.bmp'); imshow(Im); saveas(gcf,'save.bm ...

  3. matlab 求信噪比

    clear all;clc;% 实信号求信噪比 % X= sqrt(2)*sin(0:pi/1000000:6*pi); %产生正弦信号 % Y = awgn(X,14,'measured'); %加 ...

  4. ofdm 误码率 matlab,OFDM不同信噪比下的误码率matlab源码

    clear; clc; s = rng(211);            % 设置RNG状态的可重复性 numFFT = 1024;           % FFT点的数量 numRBs = 50;  ...

  5. 输出信噪比公式_如何计算信号的信噪比

    展开全部 如何计算信号的信噪比 1.在仿真实验中要产生具有某个信62616964757a686964616fe58685e5aeb931333365653766噪比的混合信号样本zt.这时,先求出不含 ...

  6. 信噪比如何计算?如何产生固定信噪比的带噪信号?

    文章目录 一.信号的基础知识 1.1 信号能量的计算 1.1.1 有穷区间能量 1.1.2 无穷区间能量 1.2 信号功率的计算 1.3 信号的分类 二.信噪比 2.1 信噪比的定义及计算 2.2 几 ...

  7. matlab错误原因,matlab常见错误分析

    这里是几个Matlab的小提示,基本上是我使用Matlab时碰到并解决了的问题,希望能使别人不要再碰钉子走弯路了.如果有建议或发现其中有错误,请与我联系. 循环变量 由于历史的原因,程序员们总是使用i ...

  8. lyapunov指数 matlab计算_Matlab学习笔记1——B站台大课

    1.Matlab调出某一视窗 菜单栏layout里面找 2.Matlab作为Calculator (1)ans 是计算结果 (2)计算规则:先*/再+-,合理使用(),从内往外写 (3)一些特殊输入 ...

  9. matlab用solve解方程错误提示,MATLAB中使用solve解决方程组的问题

    希望使用MATLAB的solve函数解出一个带有虚数的方程组,但是一直提示计算错误,要么就是算不出来结果,希望大佬们能帮帮忙 程序如下: syms a1 a2; a=[a1 a2]; C11=3.06 ...

最新文章

  1. JavaScript对象
  2. javaScript 实现多选框全选/反选及批量删除
  3. 一个操作内表的函数’CTVB_COMPARE_TABLES’
  4. NET中使用Memcached的相关资源整理
  5. 【算法学习】网络流模板……
  6. LINUX下载编译pcre
  7. 你的计算机无法启动一键还原,电脑一开机就进入dos之家的一键还原硬盘版,无法进入系统...
  8. mysql centos 配置文件路径_Centos7 查看Mysql配置文件
  9. 【元胞自动机】基于元胞自动机模拟地铁火灾疏散模型matlab代码
  10. 大牛直播SDK-Windows RTMP/RTSP/本地FLV播放器使用说明...
  11. 双非本科地信前端面试题目
  12. springBoot2学习
  13. UVA10859 placin glampposts(放置街灯)
  14. 微信聊天记录备份:当前网络状况复杂和连接失败的解决办法
  15. WIN10环境英伟达9系显卡tensorflow安装记录及调试过程 CUDA8.0+tensorflow-gpu1.4+CuDNN6.0
  16. 判断Checkbox选中两种方法
  17. LWIP-TCP Server连接两次之后无法连接问题
  18. hbase创建solr索引的超时问题
  19. 基于思科模拟器进行子网划分
  20. 用Bootstrap实现mansory网格瀑布流布局插件

热门文章

  1. OpenCV中的透视变换介绍
  2. 第十三篇:上下文无关语法 Context-Free Grammar
  3. 5 个用 Python 编写 web 爬虫的方法
  4. bash shell的一些基本概念
  5. 1.1.2 ADO.NET模型
  6. YSlow使用指南_最新2.0使用指南中文版
  7. cygwin安装hadoop过程中出现的2个问题
  8. cloudera之hadoop-0.20.1+152.tar.gz 安装出现找不到JAVA_HOME问题的解决办法
  9. java基础知识点_「Java面试题/知识点精华集」20000+字的Java基础知识篇(2020最新版) !
  10. matplotlib中文文档_python绘图库——Matplotlib及Seaborn使用(入门篇1)