簡單的數碼訊號插值 抽取及成型,MMSE誤差分析

2021-09-01 14:53:30 字數 3269 閱讀 5227

#簡單的數碼訊號插值、抽取及成型,mmse誤差分析

主題:對於乙個訊號,奈奎斯特取樣後的序列進行9倍插值,之後2倍抽取,選擇不同的公升余弦滾降因子插值濾波器,分析4.5倍插值後序列和實際取樣後的對應序列誤差情況。

此處的插值與抽取倍數均可調整,以實現不同分數倍的訊號插值。使用公升余弦滾降濾波器成型。

演算法流程圖如下:

需要注意雖然理論上奈奎斯特取樣頻率大於2倍頻即可,但實際**為了追求效果,最好大於10倍。

a = 5;

f0 = 9;

x0 = 0:0.001:6/9;

y0 = a * sin(2 * pi * f0 .* x0);

plot(x0,y0);

hold on

fn = 360;

dt = 1/fn;

t = 0:dt:6/9;

yn = a * sin(2 * pi * f0 .* t);

stem(t,yn);

title('奈奎斯特取樣後訊號圖');

xlabel('時間t');

ylabel('幅度a');

len = length(yn);

y1 = zeros(1,9 * len);

a = 1;

for n1 = 1:9 * len

if mod(n1 - 1,9) == 0

y1(n1) = yn(a);

a = a + 1;

endendfigure

x1 = 1:9 * len;

stem(x1,y1,'fill','r--');

title('9倍插值後訊號');

len1 = length(y1);

y2 = zeros(1,ceil(len1/2));

b = 1;

for n2 = 1:len1

if mod(n2-1,2) == 0

y2(b) = y1(n2);

b = b + 1;

endendfigure

stem(y2,'fill','r--');

title('2倍抽取後訊號');

h1 = rcosdesign(0.8,1,100);

h = rcosdesign(0.8,6,8);

figure;

plot(h,'k');

grid on;

xlabel('時間t');

ylabel('幅度a');

title('公升余弦滾降濾波器(滾降因子0.8)');

h2 = rcosdesign(0.2,1,20);

shaped2 = filter(h2,1,yn);

figure;

plot(shaped2,'k');

title('取樣成型後波形');

grid on;

shaped1 = filter(h1,1,y2);

figure;

plot(shaped1,'k');

title('插值抽取成型後波形');

grid on;

shaped2_error = zeros(1,100);

shaped1_error = zeros(1,100);

shaped1_error(1:100) =

shaped1(9:9:900)/(max(shaped1));

shaped2_error(1:100) =

shaped2(1:2:200)/(max(shaped2));

er = 0;

for error_cnt = 1:100

er = er + (shaped1_error(error_cnt) - shaped2_error(error_cnt)).^2;

enderror = sqrt(er / 100);

fprintf('均方根誤差為:%f',error);

% yn = fft(yn,length(t));

% mag0 = abs(yn);

% n0 = 0:length(t) - 1;

% f = n0 * fn / length(t);

% figure

% plot(f,mag0);

% title('奈奎斯特取樣後訊號頻譜圖');

% xlabel('頻率/hz');

% y1 = fft(y1);

% mag1 = abs(y1);

% n1 = 0:length(y1) - 1;

% f1 = n1 * fn / length(y1);

% figure

% plot(f1,mag1);

% title('9倍插值後訊號頻譜圖');

% xlabel('頻率/hz');

% y2 = fft(y2);

% mag2 = abs(y2);

% n2 = 0:length(y2) - 1;

% f2 = n2 * fn / length(y2);

% figure

% plot(f2,mag2);

% title('2倍抽取後訊號頻譜圖');

% xlabel('頻率/hz');

**結果:

此處僅舉公升余弦滾降因子為0.8一例。

以奈奎斯特取樣後成型恢復的波形為基準

mse為3.8%,誤差精度可以接受。

以上便是整個**流程,這裡僅對簡單正弦訊號進行了操作,讀者可以自行修改輸入訊號,插值,抽取,公升余弦滾降濾波器引數均可調,以實現不同的功能。

數字訊號處理小實驗 插值與抽取

通過二維序列的差值和抽取,設計乙個對自己 進行放縮的程式。要求顯示放縮前後對比圖。使用matlab中imread函式讀取後得到的是乙個三維矩陣,要想實現對彩色 的抽取和插值,就要在每個維度上都進行抽取和插值。同時,使用imread函式得到的矩陣是uint8型別的資料,考慮到抽取和插值運算的精度,將矩...

訊號的抽取和插值

減少抽樣率以去掉過多資料的過程稱為訊號的抽取 decimatim 增加抽樣率以增加資料的過程稱為訊號的插值 interpolation 抽取 插值及其二者相結合的使用便可實現訊號抽樣率的轉換。一般多速率變換傳輸系統結構 抽取,可以在傳輸的過程中減少傳輸的資料量,接收端進行恢復時進行插值,將訊號恢復成...

訊號的抽取和插值

減少抽樣率以去掉過多資料的過程稱為訊號的抽取 decimatim 增加抽樣率以增加資料的過程稱為訊號的插值 interpolation 抽取 插值及其二者相結合的使用便可實現訊號抽樣率的轉換。一般多速率變換傳輸系統結構 抽取,可以在傳輸的過程中減少傳輸的資料量,接收端進行恢復時進行插值,將訊號恢復成...