日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

语音信号预处理1——chirp信号的生成与接收

發布時間:2023/12/9 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 语音信号预处理1——chirp信号的生成与接收 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫在前面:僅作為個人學習筆記,便于自己以后查閱,如對你有幫助,榮幸之至,如有錯誤,歡迎評論指正

編程軟件:matlab R2018b
系統: win10

系列文章目錄

  • chirp信號的生成與接收
  • 對接收到的chirp信號進行濾波、分幀處理及端點檢測
  • 計算原始chirp信號與濾波后chirp信號的相關性
  • 繪制接濾波后chirp信號的時域圖和頻域圖
  • 從1-4完整走一遍
  • 文章目錄

        • 系列文章目錄
        • 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文件格式,本案例使用的轉換工具為“格式工廠”,具體操作步驟見:格式工廠使用教程。

    參考文獻

  • Chirp信號及其生成:https://www.cnblogs.com/ytxwzqin/p/9127055.html
  • 格式工廠使用教程:https://blog.csdn.net/weixin_43093006/article/details/86624392
  • chirp函數說明:https://ww2.mathworks.cn/help/signal/ref/chirp.html?searchHighlight=chirp&s_tid=srchtitle
  • audiowrite函數說明:https://ww2.mathworks.cn/help/matlab/ref/audiowrite.html?searchHighlight=audiowrite&s_tid=srchtitle
  • chirp信號參數設置參考論文:Qun Song,Chaojie Gu,Rui Tan. Deep Room Recognition Using Inaudible Echos[J]. Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies,2018,2(3).
  • 總結

    以上是生活随笔為你收集整理的语音信号预处理1——chirp信号的生成与接收的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。