matlab 信号去直流,Speex中的近端信号去直流和预加重操作
speex_echo_cancellation中收到的近端信号,首先进行了去直流和预加重的操作。
近端信号预处理
去直流
/* Apply a notch filter to make sure DC doesn't end up causing problems */
filter_dc_notch16(in + chan,
st->notch_radius,
st->input + chan*st->frame_size,
st->frame_size,
st->notch_mem + 2*chan,
C);
其中in中保存的是原始的近端信号,st->input中保存的是去直流之后的信号。
利用matlab进行频域分析,
去直流频域分析
预加重操作
/* Copy input data to buffer and apply pre-emphasis */
/* Copy input data to buffer */
for (i = 0; i < st->frame_size; i++)
{
spx_word32_t tmp32;
/* FIXME: This core has changed a bit, need to merge properly */
tmp32 = SUB32(EXTEND32(st->input[chan*st->frame_size+i]),
EXTEND32(MULT16_16_P15(st->preemph, st->memD[chan])));
#ifdef FIXED_POINT
if (tmp32 > 32767)
{
tmp32 = 32767;
if (st->saturated == 0)
st->saturated = 1;
}
if (tmp32 < -32767)
{
tmp32 = -32767;
if (st->saturated == 0)
st->saturated = 1;
}
#endif
st->memD[chan] = st->input[chan*st->frame_size+i];
st->input[chan*st->frame_size+i] = EXTRACT16(tmp32);
}
用matlab进行频谱分析,
预加重之后频谱分析
matlab代码如下:
clear
Fs = 48000; % 采样频率
T = 1/Fs; % 采样时间
L = 480; % 信号长度
t = (0:L-1)*T; % 时间
y = textread('fp_TIME_near_001.txt');
y2 = textread('fp_TIME_near002_after_filter_dc.txt');
y3 = textread('fp_TIME_near003_after_pre-emphasis.txt');
N = 2^nextpow2(L); %采样点数,采样点数越大,分辨的频率越精确,N>=L,超出的部分信号补为0
% y
Y = fft(y,N)/N*2; %除以N乘以2才是真实幅值,N越大,幅值精度越高
f = Fs/N*(0:1:N-1); %频率
A = abs(Y); %幅值
P = angle(Y); %相值
% y2
Y2 = fft(y2,N)/N*2; %除以N乘以2才是真实幅值,N越大,幅值精度越高
f2 = Fs/N*(0:1:N-1); %频率
A2 = abs(Y2); %幅值
P2 = angle(Y2); %相值
% y3
Y3 = fft(y3,N)/N*2; %除以N乘以2才是真实幅值,N越大,幅值精度越高
f3 = Fs/N*(0:1:N-1); %频率
A3 = abs(Y3); %幅值
P3 = angle(Y3); %相值
figure;
subplot(411);
%plot(t, y, 'k')
hold on
plot(t, y2, 'r')
hold on
plot(t, y3, 'b')
legend('2: 去直流后','3: 预加重后') %为图片添加图例
title('时域信号')
xlabel('时间(s)')
subplot(412);
%plot(f(1:N/2), A(1:N/2),'k'); %函数fft返回值的数据结构具有对称性,因此我们只取前一半
hold on
plot(f2(1:N/2), A2(1:N/2), 'r');
hold on
plot(f3(1:N/2), A3(1:N/2), 'b');
title('幅值频谱(前半部分)')
xlabel('频率(Hz)')
ylabel('幅值')
subplot(413);
%plot(f(1:10), A(1:10),'k');
hold on
plot(f2(1:20), A2(1:20), 'r');
hold on
plot(f3(1:20), A3(1:20), 'b');
title('幅值频谱(放大最前部分)')
xlabel('频率(Hz)')
ylabel('幅值')
subplot(414);
%plot(f(1:10), A(1:10),'k');
hold on
plot(f2(21:240), A2(21:240), 'r');
hold on
plot(f3(21:240), A3(21:240), 'b');
title('幅值频谱(放大最后部分)')
xlabel('频率(Hz)')
ylabel('幅值')
matlab 信号去直流,Speex中的近端信号去直流和预加重操作相关推荐
- matlab中怎么仿真出bumps信号,显示仿真过程中生成的信号
配置属性 Configuration Properties 对话框控制有关示波器画面的各种属性.从示波器菜单中,选择 View > Configuration Properties.Main O ...
- java 发送信号_java – 在Windows中发送任意信号?
如果你想要的是明确地/编程性地杀死任何类型的程序/进程,在SysInternals的pstools中有一个名为"pskill"的小工具,就像Unix"kill" ...
- 利用matlab实现DMD动态模态分解(在一维信号或二维流场矢量中的应用)
利用matlab实现DMD动态模态分解(在一维信号或二维流场矢量中的应用) 0 前言 0.1 特征根的计算与含义 1 DMD的基本思路 2 一维DMD算法 3 二维DMD算法 4 总结 (2020年9 ...
- matlab频域滤波处理,手动滤波,图像去网格背景:频域中手动选择目标区域进行滤波,滤掉噪声,灵活地达到理想的效果。
目录 一.原理简介 二.现有方法 三.代码实现 四.测试结果图 一.原理简介 主要思路为:通过傅里叶变换,将图像显示在频率域中,通过观察频谱图,如果了解频谱图与原图之间的关联,可以较为容易地发现噪声在 ...
- 数字信号处理--基于MATLAB的小波去噪算法--小波变换在信号降噪和压缩中的应用
小波分析的重要应用之一就是用于信号消噪,首先简要地说明一下小波变换实现信号消噪的基本原理. 一.基本原理 含噪的一维信号模型可以表示如下 式中s(k)为含噪信号,f(k)为有用信号,e(k)为噪声信号 ...
- matlab离散方波信号,MATLAB - 在ODE15s函数中生成方波信号?(MATLAB - Generate square signal in ODE15s function?)...
MATLAB - 在ODE15s函数中生成方波信号?(MATLAB - Generate square signal in ODE15s function?) 我试图从函数内部生成一个方形信号,通过O ...
- matlab求周期信号频谱,Matlab在周期信号分解及频谱中的应用
兰兰 Q 二 竺 CN11 2034/T 实 验 技 术 与 管 理 Experimenta1 Technology and M anagement 第 33卷 第 5期 2016年 5月 Vo1.3 ...
- matlab中的方波信号图片_如何在MATLAB R2019b中导出simulink的各种图片
大家好,这里是玉树的MATLAB小知识讲堂. 今天给大家带来的是,如何在高版本MATLAB(R2018以上)的simulink中,导出我们想要的高清图片. 在做课题作业时,我发现网络中关于导出simu ...
- 《MATLAB在语音信号分析与合成中的应用》下载地址
MATLAB在语音信号分析与合成中的应用_宋知用编著_北京航空航天大学出版社_2013.11_P386_完整版 PDF电子书下载 带书签目录_.zip_免费高速下载|百度网盘-分享无限制 (网盘) ...
- matlab中对正弦信号采样,正弦信号抽样的实验报告(共9篇).doc
正弦信号抽样的实验报告(共9篇) 正弦信号抽样的实验报告(共9篇) 信号抽样实验报告 大连理工大学实验报告 学院(系):专业:班级: 姓 名: 学号: 组: ___ 实验时间: 实验室: 实验台: 指 ...
最新文章
- Linux文本界面设置网络,fedora17下通过文本界面配置网络
- ubuntu 21.04安装OBS Studio录屏软件
- css判断不同分辨率显示不同宽度布局实现自适应宽度
- jax rs mysql_Jersey / JAX-RS ExceptionMapper MySQL
- 对话诺奖得主:科学离不开国际合作
- code-server安装使用
- 写高性能 Web 应用程序的 10 个技巧 转自微软资料 .
- 中公教育python培训讲师面试题_中公教育面试经验
- linux 开山(尚硅谷)--听课笔记-
- 电脑没有声音怎么安装声卡驱动?驱动人生声卡驱动安装失败原因
- Android 音频系统
- python保存excel文件列宽自适应解决方案
- 学生用计算机的感叹号在哪,电脑网络黄三角感叹号怎么解决
- 胡适致迷茫大学生:成不在一时,功必不唐捐
- 关键字 surper 和 this
- C++ 读取TXT文件中的数据 每一行空格符相隔的数据单独取出
- Halcon连接大恒相机
- 2018 Android面经分享(京东,百度,陌陌,58到家等知名公司)
- 337调查之「普遍排除令」简介及2018年度典型案例探讨
- 设计模式是什么鬼3(原型)