專利名稱:磁卡解碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及解碼領(lǐng)域,尤其涉及一種磁卡解碼方法。
背景技術(shù):
傳統(tǒng)的磁卡軟解碼方案是在硬件上,將磁頭接到放大整形電路,以得到數(shù)字信號,然后輸入到處理器;在軟件上, 通過記錄輸入的數(shù)字信號每個電平的持續(xù)時間(即脈寬),根據(jù)脈寬的關(guān)系實現(xiàn)軟解碼。但上述技術(shù)存在如下缺點,缺點I :放大整形電路或?qū)S么趴ń獯a芯片的硬件成本相對較高。缺點2 :靈活度較低,硬件輸出的數(shù)字波形的質(zhì)量取決于放大與整形電路的設(shè)計,當硬件設(shè)計不夠好時,某些卡的輸出波形不正常,通過軟件方法能夠解決的范圍要比直接使用原始波形小得多。
發(fā)明內(nèi)容
本發(fā)明主要解決的技術(shù)問題是提供一種磁卡解碼方法,使用軟件處理替代了硬件磁卡解碼芯片,降低了設(shè)備的生產(chǎn)制造成本,并有更好的靈活性。為解決上述技術(shù)問題,本發(fā)明采用的一個技術(shù)方案是提供一種磁卡解碼方法,包括以下步驟SI、采用極值法或閾值法將采樣到的模擬波形轉(zhuǎn)換成初始數(shù)字波形,并采用插值法對所述初始數(shù)字波形的脈寬進行修正,得到修正后數(shù)字波形;S2、取磁卡的前導比特0的脈寬的平均脈寬,將此平均脈寬作為初始基準脈寬,使用所述初始基準脈寬對修正后數(shù)字波形的第一個脈寬進行判別,并由初始基準脈寬根據(jù)EWMA公式得到第二基準脈寬;以第二基準脈寬為基準對修正后數(shù)字波形的第二個脈寬進行判別,再由第二基準脈寬根據(jù)EWMA公式調(diào)整下一個基準脈寬;以下一個基準脈寬為基準對修正后數(shù)字波形的下一個脈寬進行判別;以及,重復執(zhí)行調(diào)整基準脈寬及根據(jù)相應(yīng)基準脈寬對修正后數(shù)字波形的脈寬進行判別的過程,直至修正后數(shù)字波形的脈寬全部被判別完;其中,上述判別過程是指以所述基準脈寬為基準,判別修正后數(shù)字波形的相應(yīng)脈寬是對應(yīng)比特I的半位還是比特0 ;其中,比特I由兩個連續(xù)脈寬構(gòu)成,比特0由一個脈寬構(gòu)成;S3、根據(jù)步驟S2的判別結(jié)果,將修正后數(shù)字波形轉(zhuǎn)換為對應(yīng)的0/1比特序列;S4、根據(jù)磁卡標準對所述比特序列解碼。其中,所述步驟SI是通過將磁頭接到音頻輸入口進行采樣的。其中,所述步驟S4之后還包括步驟S5 :若解碼失敗,則將步驟SI中修正后得到的數(shù)字波形按采樣方向的相反方向取出,并執(zhí)行步驟S2。
其中,所述步驟SI之前還包括以下步驟S0、判斷是否開始進行采樣;若否,則繼續(xù)判斷是否開始進行采樣;若是,則進行步驟Si。其中,當判斷開始進行采樣后判斷相鄰兩個采樣點之間的電壓值,并在連續(xù)幾百個米樣點中任意兩個米樣點之間的電壓差值小于ImV時,結(jié)束米樣。其中,所述步驟SI采用極值法將采樣到的模擬波形轉(zhuǎn)換成初始數(shù)字波形具體為將極大值點歸到高電平,從該點開始之后的點都歸到高電平,直到遇到極小值點;將極小值點歸到低電平,從該點開始之后的點都歸到低電平,直到遇到極大值點;得到初始數(shù)字波形。其中,所述步驟SI采用閾值法將采樣到的模擬波形轉(zhuǎn)換成初始數(shù)字波形具體為
將高于上閾值的采樣點歸到高電平,并將從該點開始之后的點都歸到高電平,直到遇到低于下閾值的采樣點;將低于下閾值的采樣點歸到低電平,并將從該點開始之后的點都歸到低電平,直到遇到高于上閾值的采樣點;得到初始數(shù)字波形。其中,所述步驟SI中采用插值法對所述初始數(shù)字波形的脈寬進行修正具體為,S1011、取極值點及其左右一最近相鄰點,使用帶限內(nèi)插公式在相鄰兩點之間插值,并重新計算插值后這個短序列的新極值點;S1012、根據(jù)新極值點與原極值點的位置對所述初始數(shù)字波形的脈寬進行修正。其中,采用插值法對所述初始數(shù)字波形的脈寬進行修正具體為,當電平反相時,利用線性插值法在當前電平最后一個采樣點和下一個電平第一個采樣點之間進行插值,將下一個電平第一個采樣點到閾值的時間歸到下一個電平,將閾值到當前電平最后一個采樣點的時間歸到當前電平。其中,所述步驟S2中以所述基準脈寬對修正后數(shù)字波形的脈寬進行判別,及步驟S3中將修正后數(shù)字波形轉(zhuǎn)換為對應(yīng)的0/1比特序列,具體包括以下步驟S301、判斷當前脈寬與當前基準脈寬的比例是否處于[kl,k2]內(nèi);若是,則將當前脈寬轉(zhuǎn)換為比特0,并調(diào)整基準脈寬,繼續(xù)進行對下一脈寬的判別;若否,則進行步驟S302 ;S302、判斷當前脈寬與當前基準脈寬的比例是處于[k3,+內(nèi),是處于[k2,k3]內(nèi),還是處于(0,kl]內(nèi);若當前脈寬與當前基準脈寬的比例處于[k3,+ °o)內(nèi),則放棄當前脈寬,并終止此次解碼過程或調(diào)整基準脈寬,返回步驟S301,繼續(xù)進行對下一脈寬的判別;若當前脈寬與當前基準脈寬的比例處于[k2,k3]內(nèi),則將當前脈寬轉(zhuǎn)換為比特0,并在調(diào)整基準脈寬時增加調(diào)整系數(shù),返回步驟S301,繼續(xù)進行對下一脈寬的判別;若當前脈寬與當前基準脈寬的比例處于(0,kl]內(nèi),則判斷后一個脈寬與當前基準脈寬的比例是否處于(0,kl];若是,則將當前脈寬和后一個脈寬轉(zhuǎn)換為比特1,并調(diào)整基準脈寬,返回步驟S301 ;若否,則進行步驟S303 ;S303、判斷后一個脈寬與當前基準脈寬的比例是處于[k3,+ m)內(nèi),還是處于[kl, k3]內(nèi);若后一個脈寬與當前基準脈寬的比例處于[k3,+ m)內(nèi),則終止此次解碼過程或放棄當前脈寬,并調(diào)整基準脈寬,返回步驟S301,繼續(xù)進行對下一脈寬的判別;若后一個脈寬與當前基準脈寬的比例處于[kl,k3]內(nèi),則判斷前一個脈寬與前一個基準脈寬的比例是否處于[kl,k2]內(nèi);若否,則執(zhí)行步驟S306 ;
若是,則判斷前一個脈寬是否小于后一個脈寬;若是,則進行步驟S304 ;若否,則進行步驟S305 ;S304、判斷當前脈寬與前一個脈寬之和與當前基準脈寬的比例是否處于[kl,k2]內(nèi);若是,則將當前脈寬和后一個脈寬轉(zhuǎn)換為比特1,將后一個脈寬轉(zhuǎn)換為比特0,并調(diào)整基準脈寬,返回步驟S301,繼續(xù)進行對下一脈寬的判別;若否,則將當前脈寬轉(zhuǎn)換為比特0,并調(diào)整基準脈寬,返回步驟S301,繼續(xù)進行對下一脈寬的判別;S305、判斷當前脈寬與前一個脈寬之和與當前基準脈寬的比例是否處于[kl,k2]內(nèi);若是,則將當前脈寬和前一個脈寬轉(zhuǎn)換為比特1,將后一個脈寬轉(zhuǎn)換為比特0,并調(diào)整基準脈寬,返回步驟S301,繼續(xù)進行對下一脈寬的判別;若否,則將當前脈寬轉(zhuǎn)換為比特0,并調(diào)整基準脈寬,返回步驟S301,繼續(xù)進行對下一脈寬的判別;S306、判斷前第二個脈寬與前一個基準脈寬的比例是否處于(0,kl]內(nèi);若是,則 進行步驟S307 ;若否,則將當前脈寬轉(zhuǎn)換為比特0,并調(diào)整基準脈寬,返回步驟S301,繼續(xù)進行對下一脈寬的判別;S307、判斷當前脈寬、前一個脈寬和前第二個脈寬的脈寬之和,與前一個基準脈寬的比例是否處于[kl,k2]內(nèi);若是,則將后一個脈寬和后第二個脈寬均轉(zhuǎn)換為比特0,并調(diào)整基準脈寬,返回步驟S301,繼續(xù)進行對下一脈寬的判別;若否,則將當前脈寬轉(zhuǎn)換為比特0,并調(diào)整基準脈寬,返回步驟S301,繼續(xù)進行對下一脈寬的判別;其中,0〈kl〈l〈k2〈k3。本發(fā)明的有益效果是區(qū)別于現(xiàn)有技術(shù)中硬件成本較高,靈活性較低等缺點,本發(fā)明提供一種磁卡解碼方法,采用極值法或閾值法將得到原始模擬波形轉(zhuǎn)換為初始數(shù)字波形,并采用插值法修正初始數(shù)字波形,使數(shù)字波形脈寬的計算更準確。如此可以看出,本發(fā)明能夠靈活地選擇將模擬波形轉(zhuǎn)換成數(shù)字波形的方法,且由于是軟件解碼的方法,當出現(xiàn)磁卡標準不兼容的問題時,只需根據(jù)標準規(guī)定的映射表對邏輯01序列重新解碼即可,靈活度非常高。此外,由于本發(fā)明是將磁頭直接接到音頻輸入口上,通過錄音的方式獲取磁卡的模擬波形,現(xiàn)在的終端設(shè)備(如手機、平板電腦等)都會有音頻芯片,所以在很大程度上解決了硬件成本較高的問題,并且與現(xiàn)有技術(shù)相比,能夠有效地抑制噪聲。
圖I是本發(fā)明磁卡解碼方法的一流程圖;圖2是本發(fā)明提供的硬件連接圖;圖3是本發(fā)明采樣的部分磁卡數(shù)據(jù);圖4是對圖3中采用極值法將模擬波形轉(zhuǎn)換成初始數(shù)字波形的結(jié)果;圖5是對圖3中采用閾值法將模擬波形轉(zhuǎn)換成初始數(shù)字波形的結(jié)果;圖6是本發(fā)明磁卡解碼方法中脈寬轉(zhuǎn)換為0/1比特序列的方法的部分流程圖;圖7是本發(fā)明磁卡解碼方法中脈寬轉(zhuǎn)換為0/1比特序列的方法的部分流程圖;圖8是本發(fā)明磁卡解碼方法中脈寬轉(zhuǎn)換為0/1比特序列的方法的部分流程圖
具體實施方式
為詳細說明本發(fā)明的技術(shù)內(nèi)容、構(gòu)造特征、所實現(xiàn)目的及效果,以下結(jié)合實施方式并配合附圖詳予說明。請參閱圖1,本發(fā)明提供一種磁卡解碼方法,包括以下步驟SI、采用極值法或閾值法將采樣到的模擬波形轉(zhuǎn)換成初始數(shù)字波形,并采用插值法對所述初始數(shù)字波形的脈寬進行修正,得到修正后數(shù)字波形;S2、取磁卡的前導比特0的脈寬的平均脈寬,將此平均脈寬作為初始基準脈寬,使用所述初始基準脈寬對修正后數(shù)字波形的第 一個脈寬進行判別,并由初始基準脈寬根據(jù)EWMA公式得到第二基準脈寬;以第二基準脈寬為基準對修正后數(shù)字波形的第二個脈寬進行判別,再由第二基準脈寬根據(jù)EWMA公式調(diào)整下一個基準脈寬;以下一個基準脈寬為基準對修正后數(shù)字波形的下一個脈寬進行判別;以及,重復執(zhí)行調(diào)整基準脈寬及根據(jù)相應(yīng)基準脈寬對修正后數(shù)字波形的脈寬進行判別的過程,直至修正后數(shù)字波形的脈寬全部被判別完;其中,上述判別過程是指以所述基準脈寬為基準,判別修正后數(shù)字波形的相應(yīng)脈寬是對應(yīng)比特I的半位還是比特0 ;其中,比特I由兩個連續(xù)脈寬構(gòu)成,比特0由一個脈寬構(gòu)成;S3、根據(jù)步驟S2的判別結(jié)果,將修正后數(shù)字波形轉(zhuǎn)換為對應(yīng)的0/1比特序列;S4、根據(jù)磁卡標準對所述比特序列解碼,得到ASCII碼數(shù)據(jù)。在一具體的實施例中,步驟S4是根據(jù)IS07811/1-7811/5標準對所述比特序列解碼,得到ASCII碼數(shù)據(jù)的。在另外的實施例中,磁卡標準的選擇可根據(jù)實際情況選擇,其類型不僅有IS07811,還有JIS II,還有IBM等等,或是其他國家還有自己的本地標準。本發(fā)明采集的是離散時間的磁卡模擬波形,采用極值法或閾值法將得到原始模擬波形轉(zhuǎn)換為初始數(shù)字波形,并采用插值法修正初始數(shù)字波形,使數(shù)字波形脈寬的計算更準確。如此可以看出,本發(fā)明能夠靈活地選擇將模擬波形轉(zhuǎn)換成數(shù)字波形的方法。且本發(fā)明采用動態(tài)的當前基準脈寬作為判別所述數(shù)字波形當前脈寬對應(yīng)比特I的半位或比特0的基準,有效地解決了由于硬件設(shè)備的不完善、磁卡移動速度不均勻而導致的讀取數(shù)據(jù)錯誤的概率。而在另一具體的實施例中,步驟S2初始基準脈寬的得到方式可以為取出磁卡的前幾個脈寬,去掉最大值及最小值(根據(jù)實際測試,卡的邊緣比較容易受損,因此獲取的前幾個脈寬里經(jīng)常發(fā)現(xiàn)1、2個過短或過長的脈寬),然后求出脈寬平均值作為初始基準脈寬。在這里,EWMA公式為Tnew=fac*Told+(1-fac)*Pulse。其中,fac 為 0 到 I 的系數(shù),Told為當前參考脈寬,Pulse為轉(zhuǎn)換成比特0/1的當前脈寬,Tnew為新的參考脈寬。在這里,系數(shù)fac是個經(jīng)驗權(quán)值,它設(shè)得大,基準脈寬的改變速度就比較慢,它主要由實際測試所得,故在本發(fā)明中,系數(shù)fac的具體值主要由實際情況決定。在本發(fā)明中,所述步驟SI是通過將磁頭接到音頻輸入口進行采樣的。請參閱圖2,磁頭用于產(chǎn)生刷卡的模擬信號,音頻芯片以錄音的方式接收磁頭的模擬信號,按音頻的采樣率(44. IKHz或48KHz)對磁頭產(chǎn)生的模擬信號采樣,CPU接收音頻芯片傳輸過來的數(shù)據(jù),使用本發(fā)明描述的法分析數(shù)據(jù)并解碼。磁頭直接連接到音頻芯片,現(xiàn)在的終端設(shè)備(如手機、平板電腦等)都會有音頻芯片,與現(xiàn)有技術(shù)相比,節(jié)省了硬件成本。
本發(fā)明需要將模擬波形轉(zhuǎn)換成數(shù)字波形,根據(jù)數(shù)字波形每個電平的持續(xù)時間將電平轉(zhuǎn)換成01序列,而每個電平的持續(xù)時間則指的是脈寬。采樣間隔指的是采樣的時間間隔,比如采樣速度為100KSPS/S,表示I秒采樣100K次,那么采樣間隔就是10us。在本發(fā)明中,步驟SI是通過極值法或閾值法將采樣到的模擬波形轉(zhuǎn)換成初始數(shù)字波形的,并且針對每種方法均有修正措施。下面就結(jié)合實施例,具體闡述這個過程。請參閱圖3至圖5。(I)極值法。
①所述步驟SI中采用極值法將采樣到的模擬波形轉(zhuǎn)換成初始數(shù)字波形具體為,將極大值點歸到高電平,從該點開始之后的點都歸到高電平,直到遇到極小值點;將極小值點歸到低電平,從該點開始之后的點都歸到低電平,直到遇到極大值點;得到初始數(shù)字波形。然后記錄每個電平的點數(shù),將其乘以采樣間隔,便可以得到初始數(shù)字波形的脈寬。請參閱圖2至圖5,本發(fā)明采用的是極值法把采樣到的模擬波形轉(zhuǎn)換成初始數(shù)字波形,具體實施過程如下設(shè)y[i]為第i個采樣點,那么,當y[i]大于一定幅值,y[i]>y[i_l]并且y[i]>y[i+l]時,y[i]為極大值,表示高電平的開始;當y[i]小于一定幅值,y[i]〈y[i_l]并且y[i]〈y[i+l]時,y[i]為極小值,表示低電平的電始。將極大值點歸到高電平,從該點開始之后的點都歸到高電平,直到遇到極小值點;將極小值點歸到低電平,從該點開始之后的點都歸到低電平,直到遇到極大值點;得到初始數(shù)字波形,然后記錄每個電平的點數(shù),將其乘以采樣間隔,得到初始數(shù)字波形的脈寬。由于上述初始數(shù)字波形是直接通過采樣點得到的,所以上述利用極值法能夠得到更多的原始模擬波形的信息。②上述過程后,再采用插值法對所述初始數(shù)字波形的脈寬進行修正具體為,S1011、取極值點及其左右一最近相鄰點,使用帶限內(nèi)插公式在相鄰兩點之間插值,并重新計算插值后這個短序列的新極值點;S1012、根據(jù)新極值點與原極值點的位置對所述初始數(shù)字波形的脈寬進行修正。在本發(fā)明,所使用的帶限內(nèi)插公式如下所示
權(quán)利要求
1.一種磁卡解碼方法,其特征在于,包括以下步驟 51、采用極值法或閾值法將采樣到的模擬波形轉(zhuǎn)換成初始數(shù)字波形,并采用插值法對所述初始數(shù)字波形的脈寬進行修正,得到修正后數(shù)字波形; 52、取磁卡的前導比特O的脈寬的平均脈寬,將此平均脈寬作為初始基準脈寬,使用所述初始基準脈寬對修正后數(shù)字波形的第一個脈寬進行判別,并由初始基準脈寬根據(jù)EWMA公式得到第二基準脈寬; 以第二基準脈寬為基準對修正后數(shù)字波形的第二個脈寬進行判別,再由第二基準脈寬根據(jù)EWMA公式調(diào)整下一個基準脈寬; 以下一個基準脈寬為基準對修正后數(shù)字波形的下一個脈寬進行判別;以及,重復執(zhí)行調(diào)整基準脈寬及根據(jù)相應(yīng)基準脈寬對修正后數(shù)字波形的脈寬進行判別的過程,直至修正后數(shù)字波形的脈寬全部被判別完; 其中,上述判別過程是指以所述基準脈寬為基準,判別修正后數(shù)字波形的相應(yīng)脈寬是對應(yīng)比特I的半位還是比特O ;其中,比特I由兩個連續(xù)脈寬構(gòu)成,比特O由一個脈寬構(gòu)成; 53、根據(jù)步驟S2的判別結(jié)果,將修正后數(shù)字波形轉(zhuǎn)換為對應(yīng)的0/1比特序列; 54、根據(jù)磁卡標準對所述比特序列解碼。
2.根據(jù)權(quán)利要求I所述的磁卡解碼方法,其特征在于所述步驟SI是通過將磁頭接到音頻輸入口進行采樣的。
3.根據(jù)權(quán)利要求I所述的磁卡解碼方法,其特征在于,所述步驟S4之后還包括步驟S5 :若解碼失敗,則將步驟SI中修正后得到的數(shù)字波形按采樣方向的相反方向取出,并執(zhí)行步驟S2。
4.根據(jù)權(quán)利要求I至3任一項所述的磁卡解碼方法,其特征在于,所述步驟SI之前還包括以下步驟S0、判斷是否開始進行采樣;若否,則繼續(xù)判斷是否開始進行采樣;若是,則進行步驟SI。
5.根據(jù)權(quán)利要求4所述的磁卡解碼方法,其特征在于,當判斷開始進行采樣后判斷相鄰兩個采樣點之間的電壓值,并在連續(xù)幾百個采樣點中任意兩個采樣點之間的電壓差值小于ImV時,結(jié)束米樣。
6.根據(jù)權(quán)利要求2所述的磁卡解碼方法,其特征在于,所述步驟SI采用極值法將采樣到的模擬波形轉(zhuǎn)換成初始數(shù)字波形具體為 將極大值點歸到高電平,從該點開始之后的點都歸到高電平,直到遇到極小值點;將極小值點歸到低電平,從該點開始之后的點都歸到低電平,直到遇到極大值點;得到初始數(shù)字波形。
7.根據(jù)權(quán)利要求2所述的磁卡解碼方法,其特征在于,所述步驟SI采用閾值法將采樣到的模擬波形轉(zhuǎn)換成初始數(shù)字波形具體為 將高于上閾值的采樣點歸到高電平,并將從該點開始之后的點都歸到高電平,直到遇到低于下閾值的采樣點;將低于下閾值的采樣點歸到低電平,并將從該點開始之后的點都歸到低電平,直到遇到高于上閾值的采樣點;得到初始數(shù)字波形。
8.根據(jù)權(quán)利要求6所述的磁卡解碼方法,其特征在于,所述步驟SI中采用插值法對所述初始數(shù)字波形的脈寬進行修正具體為, S1011、取極值點及其左右一最近相鄰點,使用帶限內(nèi)插公式在相鄰兩點之間插值,并重新計算插值后這個短序列的新極值點; S1012、根據(jù)新極值點與原極值點的位置對所述初始數(shù)字波形的脈寬進行修正。
9.根據(jù)權(quán)利要求7所述的磁卡解碼方法,其特征在于,所述步驟SI中采用插值法對所述初始數(shù)字波形的脈寬進行修正具體為, 當電平反相時,利用線性插值法在當前電平最后一個采樣點和下一個電平第一個采樣點之間進行插值,將下一個電平第一個采樣點到閾值的時間歸到下一個電平,將閾值到當前電平最后一個采樣點的時間歸到當前電平。
10.根據(jù)權(quán)利要求I所述的磁卡解碼方法,其特征在于,所述步驟S2中以所述基準脈寬對修正后數(shù)字波形的脈寬進行判別,及步驟S3中將修正后數(shù)字波形轉(zhuǎn)換為對應(yīng)的0/1比特序列,具體包括以下步驟 s301、判斷當前脈寬與當前基準脈寬的比例是否處于[kl,k2]內(nèi);若是,則將當前脈寬 轉(zhuǎn)換為比特0,并調(diào)整基準脈寬,繼續(xù)進行對下一脈寬的判別;若否,則進行步驟S302 ; s302、判斷當前脈寬與當前基準脈寬的比例是處于[k3,+m)內(nèi),是處于[k2,k3]內(nèi),還是處于(0,kl]內(nèi); 若當前脈寬與當前基準脈寬的比例處于[k3,+ °o)內(nèi),則放棄當前脈寬,并終止此次解碼過程或調(diào)整基準脈寬,返回步驟S301,繼續(xù)進行對下一脈寬的判別; 若當前脈寬與當前基準脈寬的比例處于[k2,k3]內(nèi),則將當前脈寬轉(zhuǎn)換為比特0,并在調(diào)整基準脈寬時增加調(diào)整系數(shù),返回步驟S301,繼續(xù)進行對下一脈寬的判別; 若當前脈寬與當前基準脈寬的比例處于(0,kl]內(nèi),則判斷后一個脈寬與當前基準脈寬的比例是否處于(0,kl];若是,則將當前脈寬和后一個脈寬轉(zhuǎn)換為比特1,并調(diào)整基準脈寬,返回步驟S301 ;若否,則進行步驟S303 ; s303、判斷后一個脈寬與當前基準脈寬的比例是處于[k3,+m)內(nèi),還是處于[kl,k3]內(nèi); 若后一個脈寬與當前基準脈寬的比例處于[k3,+ m)內(nèi),則終止此次解碼過程或放棄當前脈寬,并調(diào)整基準脈寬,返回步驟S301,繼續(xù)進行對下一脈寬的判別; 若后一個脈寬與當前基準脈寬的比例處于[kl,k3]內(nèi),則判斷前一個脈寬與前一個基準脈寬的比例是否處于[kl,k2]內(nèi);若否,則執(zhí)行步驟S306 ; 若是,則判斷前一個脈寬是否小于后一個脈寬;若是,則進行步驟S304 ;若否,則進行步驟S305 ; s304、判斷當前脈寬與前一個脈寬之和與當前基準脈寬的比例是否處于[kl,k2]內(nèi);若是,則將當前脈寬和后一個脈寬轉(zhuǎn)換為比特1,將后一個脈寬轉(zhuǎn)換為比特0,并調(diào)整基準脈寬,返回步驟S301,繼續(xù)進行對下一脈寬的判別;若否,則將當前脈寬轉(zhuǎn)換為比特0,并調(diào)整基準脈寬,返回步驟S301,繼續(xù)進行對下一脈寬的判別; s305、判斷當前脈寬與前一個脈寬之和與當前基準脈寬的比例是否處于[kl,k2]內(nèi);若是,則將當前脈寬和前一個脈寬轉(zhuǎn)換為比特1,將后一個脈寬轉(zhuǎn)換為比特0,并調(diào)整基準脈寬,返回步驟S301,繼續(xù)進行對下一脈寬的判別;若否,則將當前脈寬轉(zhuǎn)換為比特0,并調(diào)整基準脈寬,返回步驟S301,繼續(xù)進行對下一脈寬的判別; s306、判斷前第二個脈寬與前一個基準脈寬的比例是否處于(0,kl]內(nèi);若是,則進行步驟S307 ;若否,則將當前脈寬轉(zhuǎn)換為比特0,并調(diào)整基準脈寬,返回步驟S301,繼續(xù)進行對下一脈寬的判別; S307、判斷當前脈寬、前一個脈寬和前第二個脈寬的脈寬之和,與前一個基準脈寬的比例是否處于[kl,k2]內(nèi);若是,則將后一個脈寬和后第二個脈寬均轉(zhuǎn)換為比特O,并調(diào)整基準脈寬,返回步驟S301,繼續(xù)進行對下一脈寬的判別;若否,則將當前脈寬轉(zhuǎn)換為比特O,并調(diào)整基準脈寬,返回步驟S301,繼續(xù)進行對下一脈寬的判別; 其中,0〈kl〈l〈k2〈k3。
全文摘要
本發(fā)明公開一種磁卡解碼方法,包括以下步驟S1、采用極值法或閾值法將采樣到的模擬波形轉(zhuǎn)換成初始數(shù)字波形,并采用插值法對所述初始數(shù)字波形的脈寬進行修正,得到修正后數(shù)字波形;S2、取磁卡的前導比特0的脈寬的平均脈寬,將此平均脈寬作為初始基準脈寬,使用所述初始基準脈寬對修正后數(shù)字波形的第一個脈寬進行判別,并由初始基準脈寬根據(jù)EWMA公式得到第二基準脈寬,以第二基準脈寬為基準對修正后數(shù)字波形的第二個脈寬進行判別;重復執(zhí)行調(diào)整基準脈寬及根據(jù)相應(yīng)基準脈寬對修正后數(shù)字波形的脈寬進行判別的過程,直至修正后數(shù)字波形的脈寬全部被判別完;S3、根據(jù)S2的判別結(jié)果,將修正后數(shù)字波形轉(zhuǎn)換為比特序列;S4、對所述比特序列解碼。
文檔編號G06K7/00GK102722686SQ20121016573
公開日2012年10月10日 申請日期2012年5月25日 優(yōu)先權(quán)日2012年5月25日
發(fā)明者劉文燦 申請人:福建聯(lián)迪商用設(shè)備有限公司