语音信号预处理1——chirp信号的生成与接收
生活随笔
收集整理的這篇文章主要介紹了
语音信号预处理1——chirp信号的生成与接收
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
寫在前面:僅作為個人學習筆記,便于自己以后查閱,如對你有幫助,榮幸之至,如有錯誤,歡迎評論指正
編程軟件:matlab R2018b
系統: win10
系列文章目錄
文章目錄
- 系列文章目錄
- chirp信號的生成
- chirp信號的接收
- 參考文獻
chirp信號的生成
chirp信號:粗暴理解就是信號頻率隨時間線性增長的一種語音信號。本文所選用的chirp信號參數如下:
| 頻域 | 18KHZ~20KHZ |
| chirp持續時間 | 2ms |
| chirp間隔時間 | 100ms |
| chirp重復次數 | 10次 |
| 采樣率 | 48KHZ |
生成chirp信號:matlab代碼如下,運行該代碼后,將生成一個.wav文件,該文件存儲的內容正是chirp信號:
%%% 生成chirp信號,可根據需求設置信號參數:頻域、chirp持續時間、chirp間隔時間、采樣率、chirp重復次數 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% 本實例中信號參數設置如下: % nfreq1:18000 % 頻域下界 % nfreq2:20000 % 頻域上界,即信號頻域為18000~20000HZ % chirpLength:0.002s % chirp持續時間 % chirpInterval:0.1s % chirp間隔時間 % chirpRepeat:10 % chirp重復次數 % fs:48000HZ % 采樣率 %%%%%% INPUT % 信號參數設置 % 如上所示,可根據需求自行改變信號參數,否則默認使用本案例所用信號參數 % fname % 文件名稱,用于存儲生成的chirp信號 %%%%%% OUTPUT % file % 存儲著chirp信號的文件,該文件將在當前目錄下生成 % figure1 % 橫坐標為時間,縱坐標為信號幅值,畫出一次chirp信號 % figure2 % 橫坐標為時間,縱坐標為信號幅值,畫出最終生成的chirp信號 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%clear; close all; clc;%%% 設置chirp信號參數及文件名稱 nfreq1 = 18000; % 設置頻率下界 nfreq2 = 20000; % 設置頻率上界 chirpLength = 0.002; % chirp持續時間 chirpInterval = 0.1; % chirp間隔時間,即多長時間一個chirp chirpRepeat = 10; % chirp重復次數 fs = 48000; % 采樣率 fname = 'chirp_18_20.wav'; % 文件名稱,用以存儲chirp信號的文件的名稱%%% 使用matlab自帶函數chirp生成chirp信號 t = 0 : 1/fs : chirpLength; chirp_one = chirp(t, nfreq1, t(end), nfreq2); % 使用chirp函數生成一次chirp信號 zeropadding = zeros(1, (chirpInterval - chirpLength) * fs); % 作為chirp間隔數據使用 y = [chirp_one, zeropadding]; y = repmat(y, 1, chirpRepeat); subplot(2, 1, 1); plot(t, chirp_one); % 畫出chirp xlabel(['time/s' 10 '(a)']); ylabel('amp'); title('one sample chirp');t2 = (0 : length(y) - 1) / fs; % 畫出最終生成的chirp信號 subplot(2, 1, 2); plot(t2, y); xlabel(['time/s' 10 '(b)']); ylabel('amp'); title('raw chirp signal'); audiowrite(fname, y, fs) % 新版本輸出函數,生成的存儲chirp信號的文件保存在當前目錄下chirp信號的接收
接收chirp信號:成功生成chirp信號后,可使用手機作為信號發射器和信號接收器。具體做法為先在手機上打開錄音機(信號接收器功能),然后手機上播放生成的.wav文件(信號發射器功能),最后將在手機上生成一個.m4a文件,該文件便是我們接收到的chirp信號。
格式轉換:若想繼續使用matlab分析接收到的chirp信號,需將.m4a文件轉化為.wav文件格式,本案例使用的轉換工具為“格式工廠”,具體操作步驟見:格式工廠使用教程。
參考文獻
總結
以上是生活随笔為你收集整理的语音信号预处理1——chirp信号的生成与接收的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle to_char() to_
- 下一篇: 硬盘检测工具Smartmontools安