用步进正弦激励法测量计算机声卡输出输入幅值频响函数

原创 2015年11月19日 09:48:58

一. 实验目的

(1) 通过对计算机声卡系统的实测加深对频响函数的理解;
(2) 对声音振动及测量有直观了解;
(3) 对计算机声卡系统的频响特性有直观的认识。

二. 实验内容

(1) 用声卡发出的步进正弦输出信号再由声卡通过音频线直接采集为输入信号,由此分析声卡的幅值的频率特性曲线

三. 实验步骤

(1) 将计算机声卡的麦克风输入口和耳机或音箱输出口用音频线连上,如图1。声卡类型如图2。
(2) 利用MatLab控制声卡发出正弦信号,信号幅值为0.4,同时利用matlab进行录音,记录此正弦信号。然后利用傅里叶变换,计算出记录信号的幅值。
(3) 保持正弦信号输出的幅值不变,改变正弦信号的频率,重复以上过程。考虑到计算机与外设之间速度的不匹配,需要加入延时,详细设置见Matlab程序。

这里写图片描述
图 1音频线连接输入和输出口

这里写图片描述
图 2声卡类型

maltab代码:

fs = 22050;  %采样频率
bits = 16;  %量化位数
chan = 1;   %单通道
tf = 5; %播音时间

rec = audiorecorder(fs, bits, chan);        %设置录音器

t = 1/fs : 1/fs : tf;
M = [10:1:40, 41:10:201, 202:100:3002, 3003:500:8003, 8003:100:11000];   %正弦信号的频率

rlt = zeros(size(M));
i = 0;

for f = M
    i = i + 1;
    y = 0.4 * sin(2 * pi * f * t);

    sound(y, fs, bits);     %播音,非阻塞函数,(f为声音的频率,fs为采样频率)
    record(rec, tf);        %录音,非阻塞函数
    pause(tf * 2);  %延时同步

    mydat = getaudiodata(rec);      %获取波形数据

    mydat1 = mydat(end - fs + 1 : end);     %从波形数据中取后1s中的数据
    mydat1 = abs(fft(mydat1)) ./ length(mydat1);    %进行傅里叶变换
    rlt(i) = max(mydat1) * 2;   %获取记录波形的幅值
end

plot(M, rlt)就会显示幅频响应曲线
这里写图片描述

四. 结论

对于采样频率为22050Hz,16位量化单通道的设置,从测试的结果来看,在10Hz~8000Hz,幅频特性曲线平坦,这是从幅值上考虑声音不失真的条件。由于采样频率22050Hz,根据采样定律,理论上最多能够覆盖11025Hz以下的频率,而该声卡在8000Hz以下都能保持平坦的幅频特性,从这个角度考虑,该声卡应该算不错了(声卡的评价指标很多,除了幅频特性外,还有相频特性,总谐波失真和互调失真等等,幅频好不代表声卡好,但是好的声卡一定有好的幅频特性)。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Arduino 控制步进电机的转速随时间按正弦规律变化

下面这段Arduino代码可以用的前提条件是,你用的步进电机的驱动器只需要你给定速度(脉冲时间间隔)和方向即可(推荐用这种驱动器),不需要你具体地指定A+,A-,B+,B-四根线分别是高电平还是低电平...

冲激函数的频响

  • 2014年06月11日 11:34
  • 17KB
  • 下载

声卡测试正弦波信号发生软件

  • 2015年03月15日 17:03
  • 256KB
  • 下载

Windows下利用钩子函数抓取声卡数据

Windows下利用钩子函数抓取声卡数据  (2013-04-06 00:46:27) 转载▼   分类: 技术文章 [讨论]Window...

声卡测试音频-正弦波-各种频率

  • 2017年06月01日 14:15
  • 321KB
  • 下载

Labview 声卡测量系统 例程

  • 2013年05月13日 00:43
  • 130KB
  • 下载

步进电机的8拍驱动函数示例

http://www.arduino.cn/thread-16151-1-1.html 在做arduino的步进电机实验时,很多人都是直接用IDE自带的stepper库来驱动步进电机。但是这个库只...

声卡接入函数

  • 2015年07月09日 16:30
  • 856B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用步进正弦激励法测量计算机声卡输出输入幅值频响函数
举报原因:
原因补充:

(最多只允许输入30个字)