色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深度剖析MATLAB信號處理仿真-基帶脈沖成形

NJ90_gh_bee81f8 ? 2017-12-22 15:42 ? 次閱讀

本次我們探討另外一個在本科階段讓我們頭痛的東西,通信原理之必考曲目,拼死也要背下來的內容,基帶脈沖成形。然而俺對這個東西的理解和認識卻是在本科以后的事情。

早年(比如摩托羅拉手機時代)的基帶成形都是用模擬電路做的,那會兒的數字電路密度極低,想想大學本科數電實驗里面的各種74系列芯片,如果用這個東西拼個數字濾波器估計會瘋掉。況且,就算有數字濾波器,高速高精度ADCDAC也是個問題。所以,早些年的數字電路課本的名字通常叫做“脈沖與數字電路”,言下之意,這東西用來處理脈沖信號的,而且,也就處理處理脈沖信號,千萬別想著整太復雜的東西,那會還是一個模擬電路統治著通信系統的時代。

問題在于,除了打電話這種事情,人們還是有傳送數據的需求的,比如說像尋呼機這種無線數字通信系統,更早的,比如鄭君里老師在 《教與寫的記憶-信號與系統評注》提到的他年輕時候的神器“1200波特數傳機”這東西用現在的話講叫做“1200波特率調制解調器”,送你一臺上網用,你肯定嫌慢,但是在當時是要國家立項的重大課題。如果你愿意去一些通信原理或是信號與系統的課本里面考古,也許會看見有些習題專門探討如何設計一個模擬的升余弦滾降濾波器。在那個時代里,數字電路的任務是把要發送的比特信息變換成脈沖信號,就是一些列各種幅度(多進制調制)的方波,我們在信號與系統的課程里知道,方波信號的帶寬是無窮大的,所以后級的模擬成形濾波器負責把這些方波的頻譜帶寬變小,同時又要滿足時域采樣點無失真的準則。

我們在數字信號處理課程里面學習過IIR濾波器,而且還有“雙線性變換法”,“沖擊響應不變法",以及各種讓我們頭暈的東西,我小時候第一次學這東西的時候在想,整這個玩意兒干嘛,后來才明白,這東西是為了用數字的方法來實現以前的模擬濾波器,模擬濾波器都是有極點的,映射到數字域中,就是IIR濾波器,那么為什么要替換掉模擬濾波器呢,有兩個原因,一是為了提高通產品的一致性,模擬元件比如電容電阻的值是無法嚴格準確生產的,至于電感就是個更加不靠譜的東西,這就導致每個模擬電路元件被制造出來都不會完全一樣,如果系統中大量使用模擬元件,最后誤差的積累會是個大問題,所以設計者會預先在電路里面加入一些參數可調的元件,在最后的組裝階段讓工人師傅看著測試儀器手動調節產品。數字電路則不同,一旦被生產出來,行為完全一致,后期的組裝調試環節大為簡化,所以更加有生產的效率,若你玩過紅色警報、星際爭霸應當知道,快速生產可是個大事情。

以上這個行為一致性的優點只是一方面,另一方面,更加有吸引力的是,數字電路中有一個概念叫做”等比縮小“,比如最早的計算機有房子那么大,可能連你手機里面處理器計算能力的百分之一都沒有,我以前為了做某些算法,去70年代的IEEE trans 里面考古,發現某些科學家在文章的末尾貼試驗數據的章節里炫富,”俺這個快速算法在擁有1M字節內存的XX型號的IBM豪華大型機上的運行時間是12秒“,俺當時感到唏噓不已。所以,你在現在的港產警匪片里面再也看不到大佬們要專門配備一個小弟替他拿電話并且大佬還要用移動電話砸人了。

如果不是為了替換模擬時代的濾波器,或是為了適應一些特殊的自適應濾波器的需求,我是會盡量回避使用IIR濾波器的,尤其是在用FPGA作為實現手段的場合。為什么?因為這個有極點的濾波器真是對量化噪聲極其敏感啊,動不動就自激振蕩啊,調過一次之后被折騰的七葷八素的,后來就再也不敢用了,還是乖乖的用FIR濾波器,讓領導給買個大芯片頂上先。如果是在處理器上,尤其是支持浮點的CPU,做做倒是無妨,但是也要注意濾波器如果階數高了,IIR這東西仍然是個危險品。

所以,在數字信號處理的領域,基帶成形濾波器通常的選擇還是FIR,在用數字的方法進行基帶成形時,需要額外注意的一個事情就是多速率,這是容易混淆的地方,這種成形濾波器有兩個速率,一個是輸入的符號的速率,濾波器的輸入是一系列或正或負的脈沖串,這個脈沖串是由要傳輸的信息比特經過符號映射得到的,如果是多電平調制的方式,脈沖串會有多種幅度,最簡單的映射方式是:信息比特0映射為脈沖符號-1,信息比特1映射為脈沖符號+1,這個脈沖符號是什么呢,就是“奈奎斯特準則”里面所說的“采樣點無失真”的采樣點,這個采樣點指的就是脈沖符號。另一個速率呢,就是濾波器輸出波形的采樣率,根據采樣定理,不能小于2倍的信號帶寬,而且,有時候為了其他的原因,比如簡化濾波器的設計,可能會用更高的采樣率。

好了,這里我們又要展示一個蹺蹺板了,如同短時傅里葉變換中的時域、頻域分辨率是蹺蹺板的兩端。這個基帶成形設計也有個蹺蹺板,讓我們來看看。

所謂蹺蹺板,就是說,有若干個參數,而且相互之間有制約,調節了一個參數,另外的參數會隨之改變,通常我們的做法是,先固定一部分,然后調節另外的,再觀察調節的結果。

幸好,這里只有三個參數,根據通信原理的課本,當采用升余弦滾降濾波器進行成形的時候,這三個參數為:脈沖符號的速率 Rs,滾降系數beta,生成的窄帶信號的帶寬BW,課本上說了,BW=Rs(1+beta)/2,beta是一個介于0、1之間的小數,這個表達式很簡單,它說明了這樣一個事實:對于符號速率為Rs的脈沖串,如果要做到采樣點無失真,用一個帶限信號傳輸它,那么這個帶限信號的帶寬將會介于0.5Rs和Rs之間。這時我們蹺蹺板的一頭是信號帶寬,另一頭是濾波器的頻響形狀,你看下面這個圖,從wiki拷貝下來的,這個beta=0的時候是“磚墻”牌的理想低通啊,這可不是鬧著玩的,所以說,如果要求傳輸固定速率的脈沖符號,要想節省帶寬,就要做一個能夠逼近“磚墻”的高性能濾波器,否則就得多占用帶寬,這個被固定下來的符號速率呢,就是蹺蹺板的支點。另外,我們也可以舉出另外的案例,比如說,固定下來傳輸帶寬,這時蹺蹺板的兩頭分別是濾波器滾降系數和符號速率,這和之前的案例本質上都是一樣的,不失一般性,我們下面把符號速率當做蹺蹺板支點來討論。

此處,我們提供了一段代碼,這段代碼表達了一個1200波特/秒的脈沖串,在通過不同配置的成形濾波器后所產生信號的時頻特性。

成形濾波器采用的matlab函數是rcosine,除了要配置符號率、滾降系數、輸出波形的采樣率之外,還需要配置一個濾波器延遲,這個參數是干啥的?通信原理的課本沒說,答案在數字信號處理的課本中,因為我們知道,FIR濾波器在概念上是個多抽頭的移位寄存器,問題在于一旦你通過滾降系數指定了濾波器的頻響曲線形狀,另外還要決定的是,你準備用多少個抽頭的FIR來實現這個濾波器,抽頭越多,實現的FIR的頻響阻帶抑制越好,但是代價是,運算量和延遲。OK,是的,你又發現有蹺蹺板了。注意,這個函數的延遲參數的單位是脈沖符號的個數,即相對于輸入端的延遲。

下面我們開始玩弄這個代碼了。

先找一個比較中庸的配置,滾降系數0.5,采樣率是3倍的符號率,濾波器延遲是8(個脈沖符號),由于FIR是中心對稱的,你可以看到,總共的抽頭系數是3*8*2+1=49個,通過下面這張時域的圖你可以看到濾波器沖擊響應的時域波形,以及輸入的信息比特被映射為幅度是+1、-1的脈沖串,并且,被做了補零插值當做濾波器的輸入。然后,在濾波器輸出信號中你看看,是否實現了采樣點無失真呢(請關注那些幅度是+1,-1的樣點)?這個時域的信號的原始信息比特是0x47,數字衛星標準中的著名幀頭。噢,等等,你是否覺得有點眼熟,對了,其實數字化的成形濾波器就是一個多速率信號處理里面的插值濾波器,這個我們在之前的系列文章中是有討論的。

滾降系數0.5

插圖,時域波形

然后我們看看頻域的幅頻曲線,分別是線性尺度和dB尺度,我們看到這個濾波器的設計截止頻率是900Hz,這符合公式的計算,而實現出來的濾波器的阻帶衰減是-60dB左右。

插圖,濾波器頻響

接下來,看看全部信號的加窗DFT頻譜,同樣,可以看到,在900Hz的位置衰減到-60dB

插圖,加窗DFT頻譜

然后我們關注一下短時的幅頻特性,上STDFT(短時傅里葉變換)頻譜。

插圖,瀑布圖頻譜

好,其它參數不變,我們改改滾降系數,首先是滾降系數為0的插圖,時域波形

磚墻是不可能完美實現滴,無限逼近吧,你看這個頻譜,還記得信號與系統課本里面,有個詞匯叫做“吉布斯現象”么?

注意看看濾波器的通帶寬度和阻帶衰減,慘不忍睹的-20dB啊

插圖,濾波器頻響

這信號帶寬是600Hz,帶外雜散很大。

插圖,加窗DFT頻譜

短時分析也是如此

插圖,瀑布圖頻譜

接下來,再把滾降系數為改為1。

插圖,時域波形

插圖,濾波器頻響

插圖,加窗DFT頻譜

插圖,瀑布圖頻譜

通信系統的確是復雜且零碎的一門學科,希望本文對您的學習能盡到綿薄之力,網絡上曾有詩曰:

天若有情天亦老,人學通信死得早。商女不知亡國恨,隔江猶看信息論。問君能有幾多愁,誤碼率都不會求。兩岸猿聲啼不住,互相討論譜密度。忽如一夜春風來,信號流圖不會排。洛陽親友如相問,直接去問韓聲棟。風蕭蕭兮易水寒,調制解調各種難。垂死病中驚坐起,明天要考載噪比!

以下是代碼片段:

%///////////////////////////////////////////////////////////% base band shaping use raised cosine FIR filter%///////////////////////////////////////////////////////////close all;clear;clc;

rate_symbol = 1200 ; % input symbol raten_itp = 3 ; % num of interpolationfilter_delay = 8 ;roll_off = 1.0 ;

head_bit = [0 1 0 0 0 1 1 1 ].';total_bit_len = 2048;bit_map = [-1 1] ;

head_bit_len = length(head_bit);info_bit = randint(total_bit_len-head_bit_len,1);

total_bit = [head_bit; info_bit];

head_itp_len = head_bit_len * n_itp;

fs_filter_out = n_itp*rate_symbol % filter output sample rate

filter_delay_in_sample = n_itp*filter_delay ;

coeff = rcosine(rate_symbol, fs_filter_out, ... 'fir/normal', roll_off, filter_delay);

coeff = coeff .' ;

% map info_bit to multi-level signalsignal_1x = bit_map(total_bit + 1) ;

len_1x = length(signal_1x) ;

len_itp = len_1x * n_itp ;signal_itp = zeros(len_itp,1) ;% write the original signal value into itp signalsignal_itp(1:n_itp:len_itp-n_itp+1) = signal_1x;

data_conv = conv(coeff, signal_itp);data_conv = filter(coeff,1, signal_itp);filter_out = data_conv ;

signal_itp_x_axis = [1:head_itp_len] + filter_delay*n_itp;

figure;head_itp = signal_itp(1:head_itp_len);head_conv = data_conv(1:head_itp_len+filter_delay_in_sample);

subplot(3,1,1); plot(coeff, 'linewidth',1.5); grid on; ylim([-0.3, 1.2]);title('Filter Coeff', 'FontSize', 16);

subplot(3,1,2); stem(head_itp,...'--ms', 'MarkerEdgeColor','k','MarkerFaceColor','g', 'MarkerSize',6 );title('Header Bits Mapped to Symbol with Interpolation', 'FontSize', 16);ylim([-1.2, 1.2]);grid on;

subplot(3,1,3); stem(signal_itp_x_axis, signal_itp(1:head_itp_len), ...'--ms', 'MarkerEdgeColor','k','MarkerFaceColor','g', 'MarkerSize',6 );grid on; hold;subplot(3,1,3); plot(head_conv, 'linewidth',1.5);grid on;title('Header Bits after Pulse Shaping Filter Output ', 'FontSize', 16);

kaiser_beta = 8 ;

kaiser_win_spectrum_plot(fs_filter_out, filter_out, kaiser_beta);title('Total Signal Spectrum', 'FontSize', 16);

len_w = floor(total_bit_len /8);len_o = floor(len_w * 0.8);len_d = len_w ;figure ;% use tic toc get running timespectrogram(filter_out, len_w, len_o, len_d, fs_filter_out);title('Spectrogram', 'FontSize', 16);% get filter frequency reponse vector over 0~pi[f_rp_vec ,w_pi] = freqz(coeff);x_half_fs = w_pi/pi(fs_filter_out/2);f_rp_vec_norm_dB = 20log10(abs(f_rp_vec)+1E-10);f_rp_vec_norm_dB = f_rp_vec_norm_dB - max(f_rp_vec_norm_dB);

figure;ideal_f_rp_vec = (x_half_fs < fs_filter_out/(2n_itp))n_itp;

subplot(2,1,1);h1 = plot(x_half_fs, abs(f_rp_vec), ...x_half_fs, ideal_f_rp_vec, '-r', 'linewidth', 1.5);grid on;

title('Filter frequency response, Linear Scale', 'FontSize', 16);legend('Actual filter response', 'Ideal filter response');subplot(2,1,2);plot(x_half_fs, f_rp_vec_norm_dB, 'linewidth', 1.5);grid on;title('Filter frequency response, dB Scale', 'FontSize', 16);ylim([-120, 5]);


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • matlab
    +關注

    關注

    185

    文章

    2974

    瀏覽量

    230385
  • 脈沖
    +關注

    關注

    20

    文章

    889

    瀏覽量

    95620
  • 仿真
    +關注

    關注

    50

    文章

    4070

    瀏覽量

    133552
  • 基帶
    +關注

    關注

    4

    文章

    159

    瀏覽量

    30858

原文標題:MATLAB信號處理仿真-基帶脈沖成形的數字濾波器

文章出處:【微信號:gh_bee81f890fc1,微信公眾號:面包板社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    #硬聲創作季 #通信 通信原理-13 基帶脈沖與數字信號-差分脈沖編碼調制-1

    通信調制脈沖數字信號基帶
    水管工
    發布于 :2022年10月31日 18:39:37

    #硬聲創作季 #通信 通信原理-15 基帶脈沖與數字信號-時分復用-3

    通信脈沖數字信號基帶
    水管工
    發布于 :2022年10月31日 18:43:51

    #硬聲創作季 #通信 通信原理-15 基帶脈沖與數字信號-時分復用-4

    通信脈沖數字信號基帶
    水管工
    發布于 :2022年10月31日 18:44:15

    求助 高斯脈沖成形濾波器

    Matlab傷不起啊向各位大神求助怎么用Matlab設計一個高斯脈沖成形濾波器啊
    發表于 04-11 10:56

    有什么方法可以實現基帶信號成形

    本文采用基于分布式算法思想的時域成形方法來實現基帶信號成形
    發表于 04-30 06:10

    寬頻帶脈沖發生器

    寬頻帶脈沖發生器
    發表于 03-21 09:20 ?482次閱讀
    寬頻<b class='flag-5'>帶脈沖</b>發生器

    混沌系統脈沖控制及Matlab仿真

    研究L 混沌系統的脈沖魯棒鎮定問題,得到其脈沖魯棒鎮定的充分條件,給出相應的脈沖控制律。通過應用Matlab 中Simulink 工具箱對L 混沌系統進行
    發表于 09-15 16:35 ?68次下載
    混沌系統<b class='flag-5'>脈沖</b>控制及<b class='flag-5'>Matlab</b><b class='flag-5'>仿真</b>

    MATLAB信號處理仿真實驗代碼包

    MATLAB信號處理仿真實驗代碼包
    發表于 09-23 14:31 ?213次下載

    MATLAB信號處理仿真實驗

    基本的信號處理方面的matlab程序,只是做教程。
    發表于 10-29 15:23 ?0次下載

    超寬帶脈沖源實用電路

    超寬帶脈沖源實用電路1,又需要的下來看看
    發表于 12-29 11:39 ?7次下載

    射頻脈沖的頻譜是什么樣的?

    圖1給出了產生射頻脈沖信號的最簡單方式,可以將脈沖調制器理解為開關,基帶脈沖信號控制其導通與關斷,從而將輸入的CW
    的頭像 發表于 06-05 16:50 ?9647次閱讀
    射頻<b class='flag-5'>脈沖</b>的頻譜是什么樣的?

    脈沖信號的頻譜到底是什么樣的?

    產生射頻脈沖信號的過程相當于AM調制,調制信號基帶脈沖信號。AM調制將使得基帶信號的單邊帶頻譜
    的頭像 發表于 06-24 10:52 ?5.5w次閱讀

    基帶信號仿真方法上篇

    本章內容和《電氣信息類專業課程之通信原理與matlab仿真 第六章 基帶通信系統》有點重合,但區別也很多,最大的區別是體現在仿真程序上。本章側重基帶
    的頭像 發表于 10-13 15:10 ?2789次閱讀
    <b class='flag-5'>基帶信號</b><b class='flag-5'>仿真</b>方法上篇

    信號與系統的MATLAB仿真

    信號與系統的MATLAB仿真資料說明。
    發表于 04-26 10:18 ?44次下載

    聊聊基帶部分的脈沖成形

    在數字通信中,要傳輸的聲音、圖像等信息,會被轉換成二進制數據流,然后又會被映射分流為I路和Q路,并分別進行脈沖成形
    的頭像 發表于 07-15 16:09 ?1157次閱讀
    聊聊<b class='flag-5'>基帶</b>部分的<b class='flag-5'>脈沖</b><b class='flag-5'>成形</b>
    主站蜘蛛池模板: 国产 亚洲 日韩 欧美 在线观看| 2019天天射干网站| 久久天堂网| 高清一区二区亚洲欧美日韩| 伊人成综合网伊人222| 色戒西瓜视频| 美女张开腿让男生桶动态图 | 亚洲免费国产| 美国ZOOM动物在线观看| 国产亚洲精品久久久久| seyeye高清视频在线| 伊人AV一区二区三区夜色撩人| 世界第一黄暴漫画家| 美女被撕开胸罩狂揉大乳| 国产精品久久久久久久久久免费| 99久久就热视频精品草| 亚洲男人在线观看| 天天靠天天擦天天摸| 欧美亚洲日韩国码在线观看| 九九热在线视频| 国产亚洲精品久久久999蜜臀 | 青柠电影在线看| 免费观看a视频| 久久视热频这里只精品| 好男人午夜www视频在线观看 | 国产精品99久久久久久人韩国| AV无码久久无遮挡国产麻豆| 伊人久久亚洲精品一区| 亚洲国产AV精品一区二区蜜芽| 少妇精油按摩| 色播播电影| 少妇高潮A视频| 受喷汁红肿抽搐磨NP双性| 求个av网站| 秋霞电影院午夜伦高清| 男人一生要读的书| 免费成人高清在线视频| 美女露出逼| 年轻的女职工在线观看| 墨西哥美女主播| 嫩草影院在线观看精品|