Rife插值測頻

2021-10-03 20:39:39 字數 1193 閱讀 3638

近日整理發現了部分幾年前寫的**,差點忘了寫過它們。現在貼在這裡,說不定哪天還能用一用。

clc;clear all;close all;

show_figure_a = 1;

show_figure_b = 1;

f = 905;

fs = 3000;

n = 128;

t = (0:n-1)/fs;

s = cos(2*pi*f*t);

%% 時域加窗

w = hanning(128)';

ss = s.*w;

y = abs(fft(ss,128));

if show_figure_a == 1

figure;

plot(y,'o');

title('時域加窗頻譜');

figure;

plot(s,'r');

hold on;

plot(ss,'b');

hold off;

title('時域加窗前後訊號');

end%% 頻域加窗

y2 = abs(fft(s,128));

y2 = [0 y2 0];

yy = ;

for i = 1:128

yy(1,i) = y2(1,i+1)/2 + y2(1,i)/4 + y2(1,i+2)/4;

endyy = abs(yy);

if show_figure_b == 1

figure;

plot(yy,'o');

title('頻域加窗頻譜');

end%% rife測頻

k_index = 40;

kr_index = 39;

k = yy(1,k_index);

kr = yy(1,kr_index);

if kr_index>k_index

kk = k_index-1+(2*kr-k)/(kr+k);

else

kk = k_index-1-(2*kr-k)/(kr+k);

endf = kk/128*fs;

fprintf('rife插值後頻率為 %f \n',f);

插值查詢 插值搜尋

這是一種和二分比較相似的查詢的演算法,不過不同的是,對於分布比較均勻的較大的陣列,插值查詢有時能夠一次就搜尋到位.為什麼能夠這麼快呢 看網上沒有什麼關於這種演算法的描述,我就來描述一下吧.首先要知道一點,這種搜尋方式只能夠針對順序表進行,再乙個要理解順序表中的乙個特點,在順序表中查詢是否存在乙個值,...

hermite插值 分段插值 Hermite插值

1.分段二次多項式插值 試用分段 4段 二次多項式插值來近似 0,1 區間上的 runge 函式 1 取區間的 8 等分點,計算插值節點處的函式值 2 每次取 3 個相鄰的等分點為一組,呼叫 polyinterp 函式,計算繪圖求值點 3 繪圖.2.hermite插值 編寫程式,繪製繪製多項式 p ...

插值法(拉格朗日插值和牛頓插值)

牛頓插值 defnewton interpolation x,y,init sum y 0 temp np.zeros len x len x 將第一行賦值 for i in range 0,len x temp i,0 y i temp sum 1.0 for i in range 1,len x...