Narrative:

At cruise; at FL280; while talking to center in IMC conditions with the engine anti-ice on; three events occurred almost simultaneously. The aircraft began a 200 ft/min descent; which I called to my first officer's (the pilot flying) attention; the autopilot disengaged without any aural warning or annunciation; and ATC contacted us regarding our altitude; stating that he had us at 28;600 feet; and asking us what we showed. I took the airplane from my first officer and asked him to get out the QRH. My altimeter indicated 28;000 feet; his indicated 28;600 feet; the standby altimeter was at 28;200 feet. As we compared our altimeters; we also noted that we now both had IAS disagree and alt disagree annunciated; our airspeeds differed significantly. We told ATC that we apparently had an issue with our instruments; and asked if we could remain at 28;600 feet until we worked through our QRH procedures. ATC approved our request; and assigned us a block altitude. We were in level controlled flight; with N1's at 85% (a normal cruise setting) and I wanted to work through the QRH to better understand our true situation before making any changes or decisions. We worked through and completed the alt disagree procedure first; and determined that the first officer's altimeter was accurate; and mine was not. We then began the IAS disagree checklist; which sent us to the airspeed unreliable checklist. We determined that both airspeed indicators were unreliable; and declared an emergency. I chose to continue to ZZZ because the weather was better and because we could make a more gradual descent and less rushed approach. Flight conditions at FL280 became VMC. We completed the unreliable airspeed checklist; and the eec alt checklist. As we began the descent into ZZZ; we noticed that our airspeed and altimeters were beginning to match up; passing through FL190; they all read the same. Below FL190; ATC confirmed our altitude and airspeed several times. Their readings matched our indications. ATC asked if we wished to cancel our emergency; but I declined. I was not convinced the situation was fully remedied; and thought it might reoccur. I preferred to proceed cautiously. We reviewed the emergency landing checklist in the descent. I notified the flight attendants; and my first officer notified dispatch of the emergency via ACARS. We landed uneventfully. After exiting the runway; I made the 'remain seated announcement;' airport rescue and fire fighting inspected the aircraft; and we then proceeded to the gate. I wrote up the 'IAS disagree;' altitude disagree;' and 'eec alt' discrepancies in the aml; called maintenance; called dispatch; and notified the on-coming crew of the open items.I believe the situation was handled appropriately. I have no additional suggestions.

Google
 

Original NASA ASRS Text

Title: B737 flight crew reported IAS and Altitude DISAGREE annunciators at cruise altitude. On descent; the indications agreed and were verified by ATC.

Narrative: At cruise; at FL280; while talking to Center in IMC conditions with the engine anti-ice on; three events occurred almost simultaneously. The aircraft began a 200 ft/min descent; which I called to my FO's (the pilot flying) attention; the autopilot disengaged without any aural warning or annunciation; and ATC contacted us regarding our altitude; stating that he had us at 28;600 feet; and asking us what we showed. I took the airplane from my FO and asked him to get out the QRH. My altimeter indicated 28;000 feet; his indicated 28;600 feet; the standby altimeter was at 28;200 feet. As we compared our altimeters; we also noted that we now both had IAS Disagree and Alt Disagree annunciated; our airspeeds differed significantly. We told ATC that we apparently had an issue with our instruments; and asked if we could remain at 28;600 feet until we worked through our QRH procedures. ATC approved our request; and assigned us a block altitude. We were in level controlled flight; with N1's at 85% (a normal cruise setting) and I wanted to work through the QRH to better understand our true situation before making any changes or decisions. We worked through and completed the Alt Disagree procedure first; and determined that the FO's altimeter was accurate; and mine was not. We then began the IAS Disagree checklist; which sent us to the Airspeed Unreliable Checklist. We determined that both airspeed indicators were unreliable; and declared an emergency. I chose to continue to ZZZ because the weather was better and because we could make a more gradual descent and less rushed approach. Flight conditions at FL280 became VMC. We completed the Unreliable Airspeed Checklist; and the EEC Alt checklist. As we began the descent into ZZZ; we noticed that our airspeed and altimeters were beginning to match up; passing through FL190; they all read the same. Below FL190; ATC confirmed our altitude and airspeed several times. Their readings matched our indications. ATC asked if we wished to cancel our emergency; but I declined. I was not convinced the situation was fully remedied; and thought it might reoccur. I preferred to proceed cautiously. We reviewed the emergency landing checklist in the descent. I notified the flight attendants; and my FO notified dispatch of the emergency via ACARS. We landed uneventfully. After exiting the runway; I made the 'remain seated announcement;' Airport Rescue and Fire Fighting inspected the aircraft; and we then proceeded to the gate. I wrote up the 'IAS Disagree;' ALT Disagree;' and 'EEC Alt' discrepancies in the AML; called maintenance; called dispatch; and notified the on-coming crew of the open items.I believe the situation was handled appropriately. I have no additional suggestions.

Data retrieved from NASA's ASRS site and automatically converted to unabbreviated mixed upper/lowercase text. This report is for informational purposes with no guarantee of accuracy. See NASA's ASRS site for official report.