📄 anc.mdl
字号:
UseBuffer off
BufferSize "128"
Overlap "64"
inpFftLenInherit on
FFTlength "256"
numAvg "2"
DisplayProperties off
AxisGrid on
Memory off
FrameNumber on
AxisLegend off
AxisZoom on
OpenScopeAtSimStart on
OpenScopeImmediately off
FigPos "[404 155 378 270]"
AxisProperties on
XUnits "Hertz"
XRange "[0...Fs/2]"
InheritXIncr on
XIncr "1"
XLabel "Samples"
YUnits "dB"
YMin "-88.2201139448979"
YMax "-6.88641511288387"
YLabel "Magnitude, dB"
LineProperties off
LineDisables "on"
LineStyles "-"
LineColors "[0 0 1]"
}
Block {
BlockType Reference
Name "From Wave\nFile"
Ports [0, 1]
Position [15, 20, 95, 60]
SourceBlock "dspwin32/From Wave\nFile"
SourceType "From Wave File"
FileName "timit1.wav"
SamplesPerFrame "1"
MinBufSize "1"
dType "Double"
Port {
PortNumber 1
Name "Input Signal"
TestPoint off
LinearAnalysisOutput off
LinearAnalysisInput off
RTWStorageClass "Auto"
DataLogging off
DataLoggingNameMode "SignalName"
DataLoggingDecimateData off
DataLoggingDecimation "2"
DataLoggingLimitDataPoints off
DataLoggingMaxPoints "5000"
}
}
Block {
BlockType Reference
Name "LMS\nAdaptive Filter"
Ports [4, 2]
Position [95, 158, 180, 217]
SourceBlock "dspadpt3/LMS\nAdaptive Filter"
SourceType "LMS Adaptive Filter"
n "32"
mu "0.001"
ic "0.0"
leakage "1.0"
normalized off
Adapt on
RstPort "Either edge"
}
Block {
BlockType Reference
Name "Noise"
Ports [0, 1]
Position [15, 96, 50, 134]
Diagnostics "AllowInheritedTsInSrc"
SourceBlock "dspsrcs4/Random\nSource"
SourceType "Random Source"
SrcType "Gaussian"
NormMethod "Ziggurat"
CltLength "12"
Min "0"
Max "1"
Mean "0"
Var "1"
RepMode "Specify seed"
Seed "[23341]"
Inherit off
SampMode "Discrete"
SampTime "1/8000"
SampFrame "1"
DataType "Double"
OutComplex "Real"
}
Block {
BlockType Reference
Name "Noise Filter"
Ports [1, 1]
Position [125, 90, 175, 140]
SourceBlock "dspddes3/Digital FIR\nFilter Design"
SourceType "Digital FIR Filter Design"
filttype "Lowpass"
N "31"
Wlo "0.5"
Whi "0.6"
W0 "[.2 .5 .8]"
g0 "1"
W1 "[0 .2 .3 .6 .8 1]"
gains "[1 .5 0 0 1 .5]"
wintype "Hamming"
Rs "10"
Kbeta "5"
}
Block {
BlockType Reference
Name "Reset"
Ports [0, 1]
Position [15, 206, 40, 234]
AttributesFormatString "\\n\\n"
SourceBlock "dspdemolib/Boolean\nSwitch"
SourceType "Boolean Toggle"
state "0"
dblClick "0"
}
Block {
BlockType Scope
Name "Results"
Ports [3]
Position [370, 35, 400, 75]
Location [639, 60, 1013, 463]
Open on
NumInputPorts "3"
ZoomMode "yonly"
List {
ListType AxesTitles
axes1 "%<SignalLabel>"
axes2 "%<SignalLabel>"
axes3 "%<SignalLabel>"
}
List {
ListType SelectedSignals
axes1 ""
axes2 ""
axes3 ""
}
TimeRange "2"
YMin "-1~-4~-2"
YMax "1~4~2"
DataFormat "Array"
MaxDataPoints "50000"
}
Block {
BlockType SubSystem
Name "Simulation Notes"
Ports []
Position [405, 284, 464, 327]
BackgroundColor "cyan"
DropShadow on
TreatAsAtomicUnit off
MaskDisplay "disp('Notes')"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate "none"
MaskIconUnits "autoscale"
System {
Name "Simulation Notes"
Location [2, 82, 1014, 732]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
Annotation {
Name "Adaptive Noise Cancellation\n\nThis example"
" shows the ability of the LMS algorithm\nto adaptively model the noise and su"
"btracts from the \nnoisy speech to produce a cleaner signal.\n\nThe noise sig"
"nal picks up at the reference sensor is \nhighly correlated to the noise pick"
"s up in the primary\nsensor. This condition is required for the adaptive filt"
"er\nto adapt to the noise signal. \n\nNote to run simulation:\nPlease copy ti"
"mit1.wav from Appendix B directory to the \nworking directory"
Position [182, 89]
FontName "Arial"
FontSize 14
}
}
}
Block {
BlockType Sum
Name "Sum2"
Ports [2, 1]
Position [190, 105, 210, 125]
ShowName off
IconShape "round"
Inputs "++|"
Port {
PortNumber 1
Name "Primary sensor:\nSignal + Noise"
TestPoint off
LinearAnalysisOutput off
LinearAnalysisInput off
RTWStorageClass "Auto"
DataLogging off
DataLoggingNameMode "SignalName"
DataLoggingDecimateData off
DataLoggingDecimation "1"
DataLoggingLimitDataPoints off
DataLoggingMaxPoints "5000"
}
}
Block {
BlockType Sum
Name "Sum3"
Ports [2, 1]
Position [255, 105, 275, 125]
ShowName off
IconShape "round"
Inputs "|+-"
Port {
PortNumber 1
Name "Error Signal"
TestPoint off
LinearAnalysisOutput off
LinearAnalysisInput off
RTWStorageClass "Auto"
DataLogging off
DataLoggingNameMode "SignalName"
DataLoggingDecimateData off
DataLoggingDecimation "1"
DataLoggingLimitDataPoints off
DataLoggingMaxPoints "5000"
}
}
Block {
BlockType Reference
Name "To Wave\nFile"
Ports [1]
Position [410, 185, 540, 225]
SourceBlock "dspwin32/To Wave\nFile"
SourceType "To Wave File"
filename "clean_speech"
sampleWidth "16"
MinNumSamples "256"
}
Block {
BlockType Reference
Name "To Wave\nFile1"
Ports [1]
Position [420, 81, 525, 119]
SourceBlock "dspwin32/To Wave\nFile"
SourceType "To Wave File"
filename "speech_noise"
sampleWidth "16"
MinNumSamples "256"
}
Line {
Name "Input Signal"
Labels [0, 1]
SrcBlock "From Wave\nFile"
SrcPort 1
Points [100, 0]
Branch {
DstBlock "Sum2"
DstPort 1
}
Branch {
Labels [1, 0]
DstBlock "Results"
DstPort 1
}
}
Line {
SrcBlock "Noise Filter"
SrcPort 1
DstBlock "Sum2"
DstPort 2
}
Line {
SrcBlock "Noise"
SrcPort 1
Points [5, 0; 20, 0]
Branch {
DstBlock "LMS\nAdaptive Filter"
DstPort 1
}
Branch {
DstBlock "Noise Filter"
DstPort 1
}
}
Line {
Name "Primary sensor:\nSignal + Noise"
SrcBlock "Sum2"
SrcPort 1
Points [0, 0; 15, 0]
Branch {
DstBlock "Sum3"
DstPort 1
}
Branch {
Points [0, -35]
Branch {
Labels [2, 1]
Points [0, -25]
DstBlock "Results"
DstPort 2
}
Branch {
Points [0, 20]
DstBlock "To Wave\nFile1"
DstPort 1
}
}
}
Line {
SrcBlock "LMS\nAdaptive Filter"
SrcPort 1
Points [80, 0]
DstBlock "Sum3"
DstPort 2
}
Line {
SrcBlock "LMS\nAdaptive Filter"
SrcPort 2
Points [0, 0; 5, 0]
Branch {
Points [0, 60]
DstBlock "Freq\nResponse"
DstPort 1
}
Branch {
DstBlock "Flip"
DstPort 1
}
}
Line {
Name "Error Signal"
Labels [0, 1]
SrcBlock "Sum3"
SrcPort 1
Points [0, 0; 65, 0]
Branch {
Points [0, -45]
DstBlock "Results"
DstPort 3
}
Branch {
Points [0, 5]
Branch {
Points [0, 200; -265, 0]
DstBlock "LMS\nAdaptive Filter"
DstPort 2
}
Branch {
Points [40, 0; 0, 85]
DstBlock "To Wave\nFile"
DstPort 1
}
}
}
Line {
SrcBlock "Flip"
SrcPort 1
DstBlock "Filter\nTaps"
DstPort 1
}
Line {
SrcBlock "Enable"
SrcPort 1
Points [0, 10]
DstBlock "LMS\nAdaptive Filter"
DstPort 3
}
Line {
SrcBlock "Reset"
SrcPort 1
Points [0, -10]
DstBlock "LMS\nAdaptive Filter"
DstPort 4
}
Annotation {
Name "Adaptive Noise Cancellation Demo"
Position [217, 12]
FontName "Arial"
FontSize 12
FontWeight "bold"
}
Annotation {
Name "Reference \nsensor"
Position [91, 103]
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -