鋼琴的泛音(諧波)頻率可以低於基波頻率嗎?對一個音符傅里葉變換後發現在低於基波頻率的頻率上有幾個峰

一首鋼琴曲(kiss the rain),第一個音符截下來,進行fft之後的頻域圖像如圖(只畫了前半部分)。這個音符是#D5,查到它的基波頻率是622.254Hz,該頻率對應最高的峰。

可是按照機械振動的理論,諧波頻率應該是基波頻率的整數倍才對呀。

我截取的是第一個音符,曲子的其他部分不可能對它產生干擾的。

濾掉基波峰左邊的頻率再進行反傅里葉變換得到一個聲音,濾掉基波峰右邊的頻率再反變換得到另一個聲音,這兩個聲音也聽不出來什麼區別。

我的問題是:

1.頻率低於基波頻率的那部分是什麼,是如何產生的?

2.為什麼上面所說兩種濾波後的聲音聽起來沒區別?

3.琴鍵按下後振幅會隨時間衰減,頻率也會嗎,或者更進一步說,一個音符從發聲到衰減至人耳聽不到的這段時間內,它的頻譜是否有變化,如果有,如何變化?

ps:我的濾波方式是直接對fft得到的序列賦值,把不要的頻率對應的值賦為0。音樂文件是下載的無損flac在adobe audition里採樣保存為wav再放進matlab里的,沒有添加噪音。

pps:不知道知乎有哪些在信號處理或者音樂方面的大牛,希望大家幫忙@一下啦

先感謝所有提供幫助的人!

1.8補充----------------------------------------------------------------------------------------------

我發現我把fft算錯了,今天又試了一下,發現兩種不同濾波後的聲音差別蠻大的,濾掉低頻哪部分之後幾乎和原來一樣,濾掉泛音之後聽起來很悶,像拿一個軟東西敲鼓,但是還能聽出來是一個音符


1.頻率低於基波頻率的那部分是什麼,是如何產生的?

幾乎所有的聲學音樂發聲都是噪音和樂音混合,基頻左邊的頻率成分一部分是噪音.

另一部分,即那幾個峰:

鋼琴的內部構造,所有的琴鍵共享一個soundboard,soundboard除了提供共振放大

琴弦的振動以外,還"連接"了所有的琴弦,這導致任何你按下的音都會導致剩餘的87個鍵

所對應的琴弦們發生共振.包括低的鍵和高的鍵.

為什麼上面所說兩種濾波後的聲音聽起來沒區別?

你並沒有說你是怎麼濾的波,有可能滾降太弱,

也可能回放設備比較差.恕我直言也可能是單純滴沒聽出來.

聽覺得練.

3.琴鍵按下後振幅會隨時間衰減,頻率也會嗎,或者更進一步說,一個音符從發聲到衰減至人耳聽不到的這段時間內,它的頻譜是否有變化,如果有,如何變化?

會. 頻譜有變化. 所以短時傅里葉更適合分析樂器音色的變化.

撥弦樂器一般按照高頻衰減快低頻衰減慢的趨勢衰減.當然現實情況要複雜

得多,無法一概而論.


震動的初始階段是無數頻率一起震的,任何震動都會出現類似的現象。

我貼張圖你體會下:

下面是頻譜圖,上面是聲譜圖。看重點:

震動剛發生的瞬間,是有大片霧狀點的,那就是雜音。但是隨著時間的推移,雜音會快速消失,剩下標準的基頻/泛音線,圖上看的很清楚。

你可以玩一下這個工具體會一下:在線測音高,在線頻譜圖,在線鋼琴

原理嘛,你要先懂泛音是怎麼回事:圖解泛音及形成原理

如果上面這篇能看懂,下面的就好理解了:拿一跟棍去敲弦,弦發生震動的一瞬間,實質上是有無數的頻率在一起震動。這很好理解,隨機的敲擊當然是製造隨機的頻率。但是,這麼多頻率中,只有滿足「弦長度是波長一半的整數倍」這個條件的,才能形成筑波,也就是,才能長久的震動,長久的發聲。而其他頻率的聲音,會快速的消散掉。

==================

一一回答你的問題:

1.頻率低於基波頻率的那部分是什麼,是如何產生的?

已經解釋了。

2.為什麼上面所說兩種濾波後的聲音聽起來沒區別?

短暫的雜音人耳當然不怎麼關注,很快就過去了。

3.琴鍵按下後振幅會隨時間衰減,頻率也會嗎,或者更進一步說,一個音符從發聲到衰減至人耳聽不到的這段時間內,它的頻譜是否有變化,如果有,如何變化?

頻率不會衰減。

頻譜的變化我用圖演示了,你自己用工具體會一下就懂了。


低頻部分@浩浩 已經給出了不錯的解答,我認為是聲音幅度隨時間的緩變造成了低頻分量。

頻譜隨時間變化的問題,可以用短時傅立葉變換或者小波變換來分析,對應於matlab就是specrogram和cwt,小波變換數學上更完備,但就實操經驗來說,短時傅立葉變換似乎效果好一些。


呃,這樣,如果鋼琴是純粹的正弦波,那麼fft的結果肯定是一個峰(而且觀測還得是理想的),但是顯然不是,這個其實從物理上反而不好解釋(因為是個數學問題)。

我建議題主試試逐一減去每個主要峰值對應的時域信號。

大部分樂器產生的都不是正弦波,而我們知道只有正弦波會帶來一個狄拉克函數一樣的頻譜。

鋼琴時域信號所有不是正弦的部分對於主頻都是某種意義上的雜訊。如果雜訊是純粹的白雜訊,那麼頻譜是均勻的,如果是有色雜訊,那麼對頻譜是一個均勻的疊加,顯然我們知道這是不可能的,而所有的有色雜訊(這裡的雜訊可以包含琴弦的力學上非線性成分,鋼琴的共振的伯德圖的不平坦性或者乾脆就是非線性,非線性還有力學結構上的非線性,甚至還有空氣動力學的性質)。就是這些東西帶來了頻譜不是那麼的像正弦函數,也可以肢解為一系列的正弦波疊加,而這就是音色的產生。更別說本身鋼琴聲音的能量衰減(我隨手假設為A e^{- i eta t} Sin(omega t)形式),也是一個非常低頻的震動疊加(想想三角形和差角公式)。

所以題主你這個問題的本質是,音色是怎麼產生和體現的。


在信號系統中,只有衝激函數的頻譜才會出現單一頻率幅度有限的頻域信號,而衝激函數是個時域幅度無限大,時間無窮小的函數,這種信號你按一下琴鍵是無法做到的,只是近似接近這個信號而已,所以頻率會是一個頻段而不是單一頻率,那麼高於或低於這個頻率的頻率是肯定會有的。(還有就是只有周期信號才有基頻,這個只叫該信號的頻率好像)希望對你有幫助~


鋼琴不是只有弦出聲啊不然那麼大個共鳴箱是幹啥的_(:з」∠)_


分諧波失真

基頻的1/2, 1/3, 1/4....

目前研究不算太多


鋼琴產生的不是單頻聲信號。

單頻信號的特徵只有頻率和強度,如果樂器發出的是單頻信號的話,不同樂器發出的同頻信號將無法區分。

換句話說,就是因為樂器產生的都不是單頻信號,我們才能根據樂器發出的基頻以外的其他頻率成分來區分不同樂器。

目前扒譜只能靠人力,也是這個原因。基頻以外的信號會互相混疊,尤其是有鼓的時候,整個低頻就像被淹沒了一樣:

而人耳卻能在信號的汪洋大海中分辨出不同樂器的不同頻率,的確不可思議。我猜想人腦可能對不同的音色(頻率分量的組合方式)有所記憶,才能完成這海底撈針一般的工作。至於聲音的頻率是否變化,各個頻率分量本身的頻率是不會變的,但不同頻率分量振動的阻尼不同,再加上阻尼振動本身就不是線性的,會導致在不同時間一個聲音的各個頻率分量的幅度比不一致,聽起來就會有所區別。


首先要說明,泛音頻率不可能低於基頻。因為泛音頻率只能是基頻的整數倍。

由於發聲物體本身的原因,或者任何輕微的干擾,在第一個周期(1.60706ms)內的波形,和第二個周期內的波形,一定不可能完全相同。

如果每個1.60706ms內的波形都完全相同,那麼傅里葉分析一定只含有622.254Hz和它的整數倍諧波,而不可能出現其他值。而實際存在的聲音,都不可能完美無缺到這樣的程度,所以嚴格來講,這個振動不是以1.60706ms為周期的,622.254Hz也不是嚴格意義上的基頻,只不過在忽略次要矛盾的前提下才能大概地說622.254Hz是基頻。同樣的道理,一切的所謂的樂音,都沒有嚴格意義上的周期。只有在忽略次要矛盾的前提下才能存在周期和頻率的概念。

嚴格來講,這個波形不存在周期,而每個1.60706ms的差別越大,其他頻率成分的幅度就會越大,它反映了波形不完美的程度。這也就是題主所說的622.254Hz左側的峰出現的原因,同樣地,以上說法也能解釋其他「不應該」出現的頻率成分的存在。

所以聲音處理的時候,以本例來說,一定不能只以622.254Hz為基頻進行傅里葉分析,而一定要以一個很小的量,如0.00001rad/s展開為級數。這個量取的越小,分析越精確。這個做法的基本思想就是用數值分析的方法處理不完美的波形以達到近似效果。這也是聲音處理軟體所做的基本工作。

至於題主所說的人耳聽不出分別,那是受到人耳能力的限制,不能像電腦一樣精確分析所導致的。


感謝邀請,誠惶誠恐。才疏學淺,只能說一下我自己的看法,僅供參考。

1,所謂的基頻,我覺得這裡的定義應該是頻譜中幅值最大的頻率成分,這不代表在它的左邊就沒有其他的頻率成分的信號,基頻也就是能量最大的頻率成分。例如:對於物體的振動來說,大概是對應了它的最大振幅的諧振頻率吧,而這個諧振頻率不一定是它的第一諧振頻率,這樣在它主諧振頻率的兩側不就出現了其他頻率成分了;

2 由於其他頻率成分的信號能量幅度小,濾除之後對整個信號的影響較小,所以人耳聽起來感覺差異不明顯,而且人耳對聲音的敏感機理也挺複雜的,這種相似的信號普通人估計是聽不出來;

3 頻譜應該是針對一個完整的信號的頻率譜,所以要是說頻譜的話應該針對整個時間段的聲音,包括衰減過程,它應該是靜態不變的,而題主的意思應該是不同時間段的信號頻率成分是否相同,這大概需要將一個完整的信號分成好多段然後分別進行頻譜分析(獲得 時間-頻率譜 關係),有點小波分析的味道在裡面,不同時間頻譜應該是不一樣的,它的時域信號的差別還是挺大的。

手機暫時寫這麼多吧,歡迎交流以及指正。


樓主能留下你的聯繫方式嗎,我也是做這方面的,研究生,可以一起學習


無邀自來_(:_/∠)_

初答求輕噴_(:_/∠)_

這個頻譜我是看不懂的。。但混了這麼多年樂隊可以說說泛音。

鋼琴的弦是演奏時接觸不到的,但很多民族樂器的弦是可以碰到的。以揚琴為例,揚琴的發音原理與鋼琴非常相似,演奏時手指輕觸點琴弦發泛音,二分之一處泛八度,三分之一處泛五度等等。發出比弦音更低的泛音是不可能的,最低的只有「仿泛音」,與原音等高只有音色類似泛音。

另外,音頭之前的一段頻率可能是鋼琴發音時音槌擊弦後尚未遠離,琴弦與其接觸形成的雜音,待其遠離後琴弦振動穩定發出的聲音才是譜面音符,這種情況如果細聽應該有細微區別。【越好的琴雜音越少】


音符是實信號。fft出來的幅頻應該是對稱的啊。還有在畫圖的時候應該進行橫坐標變換,不然橫坐標為k值啊,可以根據採樣頻率和fft的點數把它變成以頻率為橫坐標,這樣就可以直觀的看了。你只取了一半頻譜,如果只在某些點取0來濾波,反變換怎麼確保是實信號?還是直接根據指標加濾波器吧,fir,iir都行啊。

一隻備戰期末的大三狗的拙見。。。


推薦閱讀:

如何考哈爾濱音樂學院?
怎麼定義民謠歌手?
Let Her Go 這首歌講的是什麼?
如何評價雙笙的《故夢》?
如何評價汪峰的新歌《河流》?

TAG:音樂 | 數學 | 物理學 | MATLAB | 數字信號處理 |